platform/upstream/libvpx.git
9 years agoAdd a guard on intra mode skip control for RTC mode
Jingning Han [Thu, 18 Dec 2014 19:54:13 +0000 (11:54 -0800)]
Add a guard on intra mode skip control for RTC mode

This commit adds a guard condition to the intra mode test skip
control in RTC coding mode. If all inter modes are skipped, force
the encoder to check intra mode. It avoids situations where the
encoder processes without properly assigning required mode
information.

Change-Id: Ibb349fee997d6584ce901d08b06e8df3ca9c01b1

9 years agoRemove ARF mode entries from THR_MODES array in non-RD mode
Jingning Han [Thu, 18 Dec 2014 01:11:39 +0000 (17:11 -0800)]
Remove ARF mode entries from THR_MODES array in non-RD mode

The alternate reference frame is disabled in non-RD mode. No need
to keep the related entries in the THR_MODES array.

Change-Id: I53386f4bb1c6284f582801f27246c5edf55bc24b

9 years agoRework mode search threshold update for RTC coding mode
Jingning Han [Wed, 17 Dec 2014 22:26:00 +0000 (14:26 -0800)]
Rework mode search threshold update for RTC coding mode

In RTC coding mode, the alternate reference frame modes and compound
inter prediction modes are disabled. This commit reworks the
related mode search threshold update process to skip interacting
with these coding modes. It provides about 1.5% speed-up for speed
-6 on average.

vidyo1
16551 b/f, 40.451 dB, 6261 ms -> 16550 b/f, 40.459 dB, 6190 ms

nik720p
33316 b/f, 38.795 dB, 6335 ms -> 33310 b/f, 38.798 dB, 6237 ms

mmmoving
33265 b/f, 41.055 dB, 7176 ms -> 33267 b/f, 41.064 dB, 7084 ms

dark720
33329 b/f, 39.729 dB, 11235 ms -> 33331 b/f, 39.733 dB, 10731 ms

Change-Id: If2a4090a371cd28f579be219c013b972d7d9b97f

9 years agoProperly store the tx_size of selected intra mode
Jingning Han [Wed, 17 Dec 2014 00:02:58 +0000 (16:02 -0800)]
Properly store the tx_size of selected intra mode

Use a temporary variable to store the transform size associated
with the best intra mode and restore the mode_info if the overall
best mode is intra mode.

Change-Id: I2606e0061ad32f91b095462902b1eb734b128eea

9 years agoMerge "Remove reset mode_info array per frame"
Jingning Han [Wed, 17 Dec 2014 17:24:44 +0000 (09:24 -0800)]
Merge "Remove reset mode_info array per frame"

9 years agoMerge "Set second ref frame to be NONE in key frame coding"
Jingning Han [Wed, 17 Dec 2014 17:24:39 +0000 (09:24 -0800)]
Merge "Set second ref frame to be NONE in key frame coding"

9 years agoVP9 common for ARMv8 by using NEON intrinsics 15
James Yu [Sat, 8 Feb 2014 04:06:21 +0000 (12:06 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 15

Re-write
- vp9_lpf_horizontal_4_dual_neon
in vp9_loopfilter_16_neon.c

Change-Id: Ie14f63d352f9564ad01db3939a61d91cf6d21a31
Signed-off-by: James Yu <james.yu@linaro.org>
9 years agoMerge "Use defines for inline and __builtin_prefetch"
Johann [Wed, 17 Dec 2014 02:04:04 +0000 (18:04 -0800)]
Merge "Use defines for inline and __builtin_prefetch"

9 years agoMerge "Fix intra mode update process in vp9_pick_inter_mode"
Jingning Han [Wed, 17 Dec 2014 01:04:04 +0000 (17:04 -0800)]
Merge "Fix intra mode update process in vp9_pick_inter_mode"

9 years agoMerge "VP9 common for ARMv8 by using NEON intrinsics 16"
Johann [Wed, 17 Dec 2014 00:15:48 +0000 (16:15 -0800)]
Merge "VP9 common for ARMv8 by using NEON intrinsics 16"

9 years agoMerge "Allow building multi-res encoder with --shared"
Johann [Tue, 16 Dec 2014 23:54:36 +0000 (15:54 -0800)]
Merge "Allow building multi-res encoder with --shared"

9 years agoMerge "Silence -Werror=unused-parameter"
Johann [Tue, 16 Dec 2014 23:54:29 +0000 (15:54 -0800)]
Merge "Silence -Werror=unused-parameter"

9 years agoRemove reset mode_info array per frame
Jingning Han [Tue, 16 Dec 2014 17:21:22 +0000 (09:21 -0800)]
Remove reset mode_info array per frame

The mode_info array was unnecessarily reset to zero every frame
when error resilient mode turned on, given that the mode info
values per block will be assigned during mode search stage.

This commit removes this reset operation. It reduces the runtime
cost on memset operation to 1/3. The overall speed -6 runtime is
reduced by 2%.

Change-Id: I32ecb73338d8995cc0c5147de09357364f13d45b

9 years agoSet second ref frame to be NONE in key frame coding
Jingning Han [Tue, 16 Dec 2014 23:46:59 +0000 (15:46 -0800)]
Set second ref frame to be NONE in key frame coding

This commit explicitly set the second reference frame type to be
NONE in key frame coding mode. This fixes a subtle dependency of
reference motion vector used by next inter frame on mode_info
reset before key frame coding.

Change-Id: I5ff0359753fdc9992b0bfe889490f7a32d7d5f6a

9 years agoUse defines for inline and __builtin_prefetch
Johann [Tue, 16 Dec 2014 23:08:16 +0000 (15:08 -0800)]
Use defines for inline and __builtin_prefetch

These were established for compatibility. Make sure to use them.

Most frequently they manifest as issues on Visual Studio builds.

Change-Id: I39d764d2eb341b999d7a6132cb44b2acfc511160

9 years agoMerge "Revert "Revert "Add support for setting byte alignment."""
Frank Galligan [Tue, 16 Dec 2014 23:14:17 +0000 (15:14 -0800)]
Merge "Revert "Revert "Add support for setting byte alignment."""

9 years agoVP9 common for ARMv8 by using NEON intrinsics 16
James Yu [Sat, 8 Feb 2014 17:01:36 +0000 (01:01 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 16

Add vp9_reconintra_neon.c
- vp9_v_predictor_4x4_neon
- vp9_v_predictor_8x8_neon
- vp9_v_predictor_16x16_neon
- vp9_v_predictor_32x32_neon
- vp9_h_predictor_4x4_neon
- vp9_h_predictor_8x8_neon
- vp9_h_predictor_16x16_neon
- vp9_h_predictor_32x32_neon
- vp9_tm_predictor_4x4_neon
- vp9_tm_predictor_8x8_neon
- vp9_tm_predictor_16x16_neon
- vp9_tm_predictor_32x32_neon

Change-Id: Ib5d54a4766a1b5127169045659974f33aa98376d
Signed-off-by: James Yu <james.yu@linaro.org>
9 years agoAllow building multi-res encoder with --shared
Johann [Tue, 16 Dec 2014 20:47:53 +0000 (12:47 -0800)]
Allow building multi-res encoder with --shared

Export vpx_codec_enc_init_multi_ver so the vp8 multi res encoder example
can see it when building shared.

Change-Id: Ic5222b1b6d949f39c7e50c3bc58fb76bece2a3f1

9 years agoSilence -Werror=unused-parameter
Johann [Tue, 16 Dec 2014 20:22:10 +0000 (12:22 -0800)]
Silence -Werror=unused-parameter

Cast away remaining issues so that new ones don't get lost in the noise.

Change-Id: Iacd6999b0686ce80f9835730d68db6382690fa92

9 years agoMerge "rtcd: handle armv7s architecture"
James Zern [Tue, 16 Dec 2014 20:22:55 +0000 (12:22 -0800)]
Merge "rtcd: handle armv7s architecture"

9 years agoVP9 common for ARMv8 by using NEON intrinsics 19
James Yu [Wed, 15 Jan 2014 08:20:34 +0000 (16:20 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 19

Delete vp9_dc_only_idct_add_neon.c

The function was merged with vp9_short_idct4x4_1_add (later
vp9_idct4x4_1_add) in d2de1ca and should have been deleted then.

Change-Id: Ie58ba3dd9dc7330a8f1238dd7dd71c9ed4639b94
Signed-off-by: James Yu <james.yu@linaro.org>
9 years agoMerge "Fixed MFQE crash issue for highbit depth."
JackyChen [Tue, 16 Dec 2014 19:12:03 +0000 (11:12 -0800)]
Merge "Fixed MFQE crash issue for highbit depth."

9 years agoFixed MFQE crash issue for highbit depth.
JackyChen [Tue, 16 Dec 2014 18:02:47 +0000 (10:02 -0800)]
Fixed MFQE crash issue for highbit depth.

Check the flags, no MFQE for highbit now. Will add highbit support
latter.

Change-Id: I548c27593e0f47ab7f4c92b45f14fb037dc86591

9 years agoMerge "Initialize best_tx_size with invalid value"
Jingning Han [Tue, 16 Dec 2014 18:01:03 +0000 (10:01 -0800)]
Merge "Initialize best_tx_size with invalid value"

9 years agoMerge "Prevent decoder from using uninitialized entropy context."
Yaowu Xu [Tue, 16 Dec 2014 17:30:24 +0000 (09:30 -0800)]
Merge "Prevent decoder from using uninitialized entropy context."

9 years agoMerge "Use right shift to replace division in vp9_pick_inter_mode"
Jingning Han [Tue, 16 Dec 2014 17:26:51 +0000 (09:26 -0800)]
Merge "Use right shift to replace division in vp9_pick_inter_mode"

9 years agoMerge "Fix for crash in highbitdepth rt mode"
Debargha Mukherjee [Tue, 16 Dec 2014 14:41:54 +0000 (06:41 -0800)]
Merge "Fix for crash in highbitdepth rt mode"

9 years agoMerge "Fix the comments."
Jim Bankoski [Tue, 16 Dec 2014 14:25:01 +0000 (06:25 -0800)]
Merge "Fix the comments."

9 years agoFix for crash in highbitdepth rt mode
Peter de Rivaz [Tue, 16 Dec 2014 10:55:49 +0000 (10:55 +0000)]
Fix for crash in highbitdepth rt mode

Change 72141 introduced a new use of vp9_avg_4x4.
This call needs to switch to using vp9_highbd_avg_4x4
when performing high bitdepth encodes.

Change-Id: I6a8ba4b62f8a75d0a917b365a55245e2f0438ea1

9 years agoMerge "iosbuild.sh: allow for out of tree builds"
James Zern [Tue, 16 Dec 2014 06:04:46 +0000 (22:04 -0800)]
Merge "iosbuild.sh: allow for out of tree builds"

9 years agoiosbuild.sh: allow for out of tree builds
James Zern [Tue, 16 Dec 2014 02:41:46 +0000 (18:41 -0800)]
iosbuild.sh: allow for out of tree builds

Change-Id: Id89ed4a4153dd6e02380c4b8ae8ad6c1f8d21944

9 years agortcd: handle armv7s architecture
James Zern [Tue, 16 Dec 2014 02:39:51 +0000 (18:39 -0800)]
rtcd: handle armv7s architecture

quiets build warnings about implicit (armv6) function declarations

Change-Id: I896a5ef3e367e5bb92777a60d34003eb3a040997

9 years agoFix intra mode update process in vp9_pick_inter_mode
Jingning Han [Mon, 15 Dec 2014 22:43:07 +0000 (14:43 -0800)]
Fix intra mode update process in vp9_pick_inter_mode

When multiple intra modes are tested, the previous mode info
update process may overwrite the selected best intra mode and make
the final selection use an inter mode. This commit fixes this
issue by moving the mode_info reset outside the intra mode search
loop.

Change-Id: I15ed4288a6b3cb0832104a5e6d5d9a25cd1a5b2b

9 years agoMerge "VP9 common for ARMv8 by using NEON intrinsics 06"
Johann [Mon, 15 Dec 2014 22:49:33 +0000 (14:49 -0800)]
Merge "VP9 common for ARMv8 by using NEON intrinsics 06"

9 years agoMerge "VP9 common for ARMv8 by using NEON intrinsics 05"
Johann [Mon, 15 Dec 2014 22:48:53 +0000 (14:48 -0800)]
Merge "VP9 common for ARMv8 by using NEON intrinsics 05"

9 years agoMerge "Simplify rate-distortion modeling function"
Jingning Han [Mon, 15 Dec 2014 22:37:19 +0000 (14:37 -0800)]
Merge "Simplify rate-distortion modeling function"

9 years agoInitialize best_tx_size with invalid value
Jingning Han [Mon, 15 Dec 2014 20:54:02 +0000 (12:54 -0800)]
Initialize best_tx_size with invalid value

If vp9_pick_inter_mode works properly, it should at least check
one coding mode and hence get best_tx_size assigned a valid value.
There is no need to initialize best_tx_size with a legitimate
value before starting the mode search.

Change-Id: Ic0496cd89672ea9c2c512a9bd1da952190af9cba

9 years agoUse right shift to replace division in vp9_pick_inter_mode
Jingning Han [Mon, 15 Dec 2014 20:48:07 +0000 (12:48 -0800)]
Use right shift to replace division in vp9_pick_inter_mode

Make the variable reduction_fac log2 based and explicitly use
right shift when computing intra_cost_penalty.

Change-Id: I208f1fb879a02debb3b3fc64f9fd06260dcf1c86

9 years agoRevert "Revert "Add support for setting byte alignment.""
Frank Galligan [Mon, 15 Dec 2014 20:00:09 +0000 (12:00 -0800)]
Revert "Revert "Add support for setting byte alignment.""

This reverts commit 91471d6aad285ff10e7582e485d8adadd1986fe2.

Fixes the compile issues if post_proc is enabled.

Change-Id: Ib40a15ce2c194f9b5adfa65a17ab01ddf60f5a59

9 years agoVP9 common for ARMv8 by using NEON intrinsics 06
James Yu [Tue, 28 Jan 2014 17:31:07 +0000 (01:31 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 06

Add vp9_iht8x8_add_neon.c
- vp9_iht8x8_64_add_neon

The assembly did not previously implement tx_type 0
BUG=716

Change-Id: Icfc99dd24f3d59047f9184a7d0c761ba7e3de934
Signed-off-by: James Yu <james.yu@linaro.org>
9 years agoVP9 common for ARMv8 by using NEON intrinsics 05
James Yu [Mon, 27 Jan 2014 10:38:35 +0000 (18:38 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 05

Add vp9_iht4x4_add_neon.c
- vp9_iht4x4_16_add_neon

The assembly did not previously implement tx_type 0
BUG=715

Change-Id: I60034d1568de034edba45c5cdd13f3d87dbc73b6
Signed-off-by: James Yu <james.yu@linaro.org>
9 years agoMerge "vp9/MACROBLOCKD: reorder struct members"
James Zern [Mon, 15 Dec 2014 19:54:51 +0000 (11:54 -0800)]
Merge "vp9/MACROBLOCKD: reorder struct members"

9 years agoSimplify rate-distortion modeling function
Jingning Han [Fri, 12 Dec 2014 22:33:52 +0000 (14:33 -0800)]
Simplify rate-distortion modeling function

Use left shift to replace one multiplication. The computation
outcome remains identical.

Change-Id: I1e1737af0a245de0d2a2bde10f0c171477199fc1

9 years agoRevert "Add support for setting byte alignment."
Paul Wilkins [Mon, 15 Dec 2014 11:52:55 +0000 (11:52 +0000)]
Revert "Add support for setting byte alignment."

Fails to compile. Bad calls to vp9_alloc_frame_buffer
and vp9_realloc_frame_buffer in postproc.c

This reverts commit 399823b6f50fb7465f62822d1395e2192e7b07fc.

Change-Id: I29f0e173f8e185d3a303cfdb17813e1eccb51e3a

9 years agoMerge "Fix a bug that break the vp8 fragment decoder."
hkuang [Sat, 13 Dec 2014 17:56:55 +0000 (09:56 -0800)]
Merge "Fix a bug that break the vp8 fragment decoder."

9 years agoiosbuild: add success/failure output
James Zern [Sat, 13 Dec 2014 03:45:15 +0000 (19:45 -0800)]
iosbuild: add success/failure output

Change-Id: I84492f68752321f0266141666e2672ed2da5f509

9 years agovp9/MACROBLOCKD: reorder struct members
James Zern [Sat, 13 Dec 2014 02:01:24 +0000 (18:01 -0800)]
vp9/MACROBLOCKD: reorder struct members

improves locality of reference

Change-Id: I0639b98bf38879f918173b3a1b25dd93090e88b4

9 years agoFix a bug that break the vp8 fragment decoder.
hkuang [Thu, 20 Nov 2014 23:39:56 +0000 (15:39 -0800)]
Fix a bug that break the vp8 fragment decoder.

(issue #882).

Change-Id: I2ca7f96d390c4eaec0473c50cb01b903d0bd3ee6

9 years agoMerge "Optimize bit_read_buffer."
James Zern [Sat, 13 Dec 2014 00:29:42 +0000 (16:29 -0800)]
Merge "Optimize bit_read_buffer."

9 years agoMerge "vpxdec: Rename the libyuv scale wrapper."
Tom Finegan [Sat, 13 Dec 2014 00:14:57 +0000 (16:14 -0800)]
Merge "vpxdec: Rename the libyuv scale wrapper."

9 years agoMerge "iosbuild.sh: Add targets argument."
Tom Finegan [Sat, 13 Dec 2014 00:14:12 +0000 (16:14 -0800)]
Merge "iosbuild.sh: Add targets argument."

9 years agoMerge "Add support for setting byte alignment."
Frank Galligan [Fri, 12 Dec 2014 23:47:11 +0000 (15:47 -0800)]
Merge "Add support for setting byte alignment."

9 years agoOptimize bit_read_buffer.
hkuang [Fri, 12 Dec 2014 21:54:40 +0000 (13:54 -0800)]
Optimize bit_read_buffer.

Change-Id: Iee43c34909deec9787b29c1c33672213b9f049df

9 years agoMerge "Remove redundant loads on 1d16_v8 filter."
James Zern [Fri, 12 Dec 2014 22:32:52 +0000 (14:32 -0800)]
Merge "Remove redundant loads on 1d16_v8 filter."

9 years agoMerge "Remove redundant loads on 1d8_v8 filter."
James Zern [Fri, 12 Dec 2014 22:32:26 +0000 (14:32 -0800)]
Merge "Remove redundant loads on 1d8_v8 filter."

9 years agoMerge "vp9: move encoder-only member from common"
James Zern [Fri, 12 Dec 2014 22:28:55 +0000 (14:28 -0800)]
Merge "vp9: move encoder-only member from common"

9 years agoMerge "don't set INLINE to 'always_inline'"
James Zern [Fri, 12 Dec 2014 22:28:20 +0000 (14:28 -0800)]
Merge "don't set INLINE to 'always_inline'"

9 years agoMerge changes Id6421838,I37499329
James Zern [Fri, 12 Dec 2014 22:27:56 +0000 (14:27 -0800)]
Merge changes Id6421838,I37499329

* changes:
  vp9: make postproc members depend on CONFIG_VP9_POSTPROC
  vp9_postproc: remove redundant CONFIG_* checks

9 years agoMerge "Allow for 4x4 prediction blocks for key frame, speed 6."
Marco [Fri, 12 Dec 2014 22:27:31 +0000 (14:27 -0800)]
Merge "Allow for 4x4 prediction blocks for key frame, speed 6."

9 years agoMerge "vp9_loopfilter_mmx: remove some unused tables"
James Zern [Fri, 12 Dec 2014 22:25:53 +0000 (14:25 -0800)]
Merge "vp9_loopfilter_mmx: remove some unused tables"

9 years agoMerge "x86_abi_support: set LIBVPX_RAND w/vp9-postproc"
James Zern [Fri, 12 Dec 2014 22:25:30 +0000 (14:25 -0800)]
Merge "x86_abi_support: set LIBVPX_RAND w/vp9-postproc"

9 years agoiosbuild.sh: Add targets argument.
Tom Finegan [Fri, 12 Dec 2014 21:53:58 +0000 (13:53 -0800)]
iosbuild.sh: Add targets argument.

Allows override of default target list. Also added missing usage info
for --extra-configure-args, and removed last vestiges of armv6 support.

Change-Id: Ic0f14fffa0cbaea1bed371d38ff65e035bbe3273

9 years agoAdd support for setting byte alignment.
Frank Galligan [Thu, 13 Nov 2014 20:28:34 +0000 (12:28 -0800)]
Add support for setting byte alignment.

Add support for setting byte alignment on the Y, U, and V plane of the
reference buffers. The byte alignment must be a power of 2, from 32 to
1024. A value of 0 sets legacy alignment.

Change-Id: I7c1399622f7aa68e123646369216b32047dda73d

9 years agoMerge "Remove unnecessary dqcoeff memset."
James Zern [Fri, 12 Dec 2014 20:16:32 +0000 (12:16 -0800)]
Merge "Remove unnecessary dqcoeff memset."

9 years agovpxdec: Rename the libyuv scale wrapper.
Tom Finegan [Fri, 12 Dec 2014 19:57:04 +0000 (11:57 -0800)]
vpxdec: Rename the libyuv scale wrapper.

The other name was misleading: We do not export scaling support from
libvpx via vpx_im{g,age}*.

Change-Id: I8acb4ea0301f08c9bab557a4063ea35d147b4631

9 years agoRemove redundant loads on 1d16_v8 filter.
Frank Galligan [Fri, 12 Dec 2014 19:48:47 +0000 (11:48 -0800)]
Remove redundant loads on 1d16_v8 filter.

This CL showed about a 3% gain in performance on some systems.

Change-Id: Id27e7e0b8e69068aa364e67859436da852669250

9 years agoRemove redundant loads on 1d8_v8 filter.
Frank Galligan [Fri, 12 Dec 2014 19:34:24 +0000 (11:34 -0800)]
Remove redundant loads on 1d8_v8 filter.

This CL showed a modest gain in performance on some systems.

Change-Id: Iad636a89a1a9804ab7a0dea302bf2c6a4d1653a4

9 years agodon't set INLINE to 'always_inline'
James Zern [Thu, 11 Dec 2014 02:42:07 +0000 (18:42 -0800)]
don't set INLINE to 'always_inline'

INLINE is used quite widely in vp9, this change improves performance
1-2% on most modern platforms.

Change-Id: I8a9974aab89fa588ea4923cc7eaf6199e344a528

9 years agovp9: move encoder-only member from common
James Zern [Thu, 11 Dec 2014 02:11:17 +0000 (18:11 -0800)]
vp9: move encoder-only member from common

allow_comp_inter_inter VP9_COMMON -> VP9_COMP

Change-Id: I6d9dc25d1cdd7e2ab62f5be69cd9fa883d21dbb6

9 years agovp9: make postproc members depend on CONFIG_VP9_POSTPROC
James Zern [Thu, 11 Dec 2014 02:12:29 +0000 (18:12 -0800)]
vp9: make postproc members depend on CONFIG_VP9_POSTPROC

Change-Id: Id64218386968cee3132269e4a0572650f20fd980

9 years agovp9_postproc: remove redundant CONFIG_* checks
James Zern [Wed, 10 Dec 2014 01:27:52 +0000 (17:27 -0800)]
vp9_postproc: remove redundant CONFIG_* checks

the entire module is wrapped in CONFIG_VP9_POSTPROC which is forcibly
enabled with CONFIG_INTERNAL_STATS

+ a similar change in vp9_alloccommon.c

Change-Id: I374993297a9fba5bef2f0b71f984eba42f0995a3

9 years agovp9_loopfilter_mmx: remove some unused tables
James Zern [Wed, 10 Dec 2014 01:57:00 +0000 (17:57 -0800)]
vp9_loopfilter_mmx: remove some unused tables

Change-Id: I964d25cc91c8e4864d73b142d9c7a1b39cb6cfbb

9 years agoMerge "vp9_dx_iface.c uses CONFIG_VP9_POSTPROC but config.h not included"
Jim Bankoski [Fri, 12 Dec 2014 19:10:17 +0000 (11:10 -0800)]
Merge "vp9_dx_iface.c uses CONFIG_VP9_POSTPROC but config.h not included"

9 years agoMerge "Adds a test to make sure encoder parms get to decoder."
Jim Bankoski [Fri, 12 Dec 2014 19:10:08 +0000 (11:10 -0800)]
Merge "Adds a test to make sure encoder parms get to decoder."

9 years agox86_abi_support: set LIBVPX_RAND w/vp9-postproc
James Zern [Wed, 10 Dec 2014 01:24:49 +0000 (17:24 -0800)]
x86_abi_support: set LIBVPX_RAND w/vp9-postproc

set LIBVPX_RAND with --enable-vp9-postproc, previously only the vp8
config was checked. this fixes the build with --disable-postproc.

Change-Id: Ia61baded6aa0e44d6443ae4a3c85915f1054f053

9 years agoMerge "Fix PICK_MODE_CONTEXT index in non-RD coding mode"
Jingning Han [Fri, 12 Dec 2014 17:16:01 +0000 (09:16 -0800)]
Merge "Fix PICK_MODE_CONTEXT index in non-RD coding mode"

9 years agovp9_dx_iface.c uses CONFIG_VP9_POSTPROC but config.h not included
Jim Bankoski [Fri, 12 Dec 2014 16:42:36 +0000 (08:42 -0800)]
vp9_dx_iface.c uses CONFIG_VP9_POSTPROC but config.h not included

Change-Id: Id316b3786214bf1028992968955da917e3f2d4a3

9 years agoFix test to call clear system state in convolve_test.
Jim Bankoski [Fri, 12 Dec 2014 14:18:56 +0000 (06:18 -0800)]
Fix test to call clear system state in convolve_test.

Assembly tests should clear system state, as we have no
expectation of proper system state in between test runs..

Change-Id: I0f591996c1f17ef2a5a8572a6b445f757223a144

9 years agoAdds a test to make sure encoder parms get to decoder.
Jim Bankoski [Fri, 12 Dec 2014 01:34:32 +0000 (17:34 -0800)]
Adds a test to make sure encoder parms get to decoder.

This is meant as a framework for testing that encode parms make it
through to the decoder.

Change-Id: Idb86ee3668b45b4e73c23c6e4daef94b0650b786

9 years agoFix PICK_MODE_CONTEXT index in non-RD coding mode
Jingning Han [Fri, 12 Dec 2014 01:17:53 +0000 (17:17 -0800)]
Fix PICK_MODE_CONTEXT index in non-RD coding mode

This commit fixes a bug in the PICK_MODE_CONTEXT index for
horizontal partition case. The compression performance change
is less than 0.01% level, since most blocks are selected to
use square block size in RTC coding mode.

Change-Id: I67effc18ae8795fccdd82a55f4efc609fa5cb3e1

9 years agoMerge "Multiframe Quality Enhancement(MFQE) in VP9."
JackyChen [Fri, 12 Dec 2014 00:24:08 +0000 (16:24 -0800)]
Merge "Multiframe Quality Enhancement(MFQE) in VP9."

9 years agoAllow for 4x4 prediction blocks for key frame, speed 6.
Marco [Thu, 11 Dec 2014 23:21:17 +0000 (15:21 -0800)]
Allow for 4x4 prediction blocks for key frame, speed 6.

For key frame under variance source partition: 4x4 prediction blocks
may be selected when variance of 8x8 block is very high (threshold is set fairly high for now).

Testing on some RTC clips shows this helps to reduce some ringing artifacts on key frame.
Encoded key frame size increases about ~10%. Key frame PSNR increases about ~0.1-0.2dB.

Change-Id: I56e203fac32ea6ef69897fb3ea269c59cb50d174

9 years agoMerge "Replace division with bit shift in choose_partitioning"
Jingning Han [Thu, 11 Dec 2014 21:30:03 +0000 (13:30 -0800)]
Merge "Replace division with bit shift in choose_partitioning"

9 years agoMerge "Re-enable 8x8 fdct/fht tests by changing tolerance"
Deb Mukherjee [Thu, 11 Dec 2014 20:29:06 +0000 (12:29 -0800)]
Merge "Re-enable 8x8 fdct/fht tests by changing tolerance"

9 years agoMerge "Corrected optimization of 8x8 DCT code"
Debargha Mukherjee [Thu, 11 Dec 2014 20:28:45 +0000 (12:28 -0800)]
Merge "Corrected optimization of 8x8 DCT code"

9 years agoRemove unnecessary dqcoeff memset.
hkuang [Thu, 11 Dec 2014 20:27:25 +0000 (12:27 -0800)]
Remove unnecessary dqcoeff memset.

dqcoeff is set to be 0 on initialization. And set back to 0 after being
used everytime.

Change-Id: I32b8e149bba40a8d707849f737a8e49a691f319c

9 years agoMerge "Refactor choose_partitioning computing scheme"
Jingning Han [Thu, 11 Dec 2014 19:14:07 +0000 (11:14 -0800)]
Merge "Refactor choose_partitioning computing scheme"

9 years agoReplace division with bit shift in choose_partitioning
Jingning Han [Thu, 11 Dec 2014 19:04:49 +0000 (11:04 -0800)]
Replace division with bit shift in choose_partitioning

This commit explicitly uses the bit shift operation instead of
division for computing block variance.

Change-Id: Id19c0ff27dd1d1ae4aceee6657e1aad0d406bd74

9 years agoPrevent decoder from using uninitialized entropy context.
Alexander Voronov [Thu, 11 Dec 2014 17:44:19 +0000 (20:44 +0300)]
Prevent decoder from using uninitialized entropy context.

If decoding starts with intra-only frame, there is a possibility
of using uninitialized entropy context, what leads to undefined
behavior.

Change-Id: Icbb64b5b1bd1e5de2a4bfa2884e56bc0a20840af

9 years agoCorrected optimization of 8x8 DCT code
Peter de Rivaz [Thu, 11 Dec 2014 15:54:23 +0000 (15:54 +0000)]
Corrected optimization of 8x8 DCT code

The 8x8 DCT uses a fast version whenever possible.
There was a mistake in the checking code which
meant sometimes the fast version was used when it
was not safe to do so.

Change-Id: I154c84c9e2d836764768a11082947ca30f4b5ab7
(cherry picked from commit fd05fb0c21e253b4d6f92d7e0b752850ff8ab188)

9 years agoRefactor choose_partitioning computing scheme
Jingning Han [Thu, 11 Dec 2014 17:29:36 +0000 (09:29 -0800)]
Refactor choose_partitioning computing scheme

This commit refactors the choose_partitioning function. It removes
redundant memset calls and makes the encoder to calculate
variance value per block only when it is needed. It reduces the
average runtime cost of choose_partitioning by 60%. Overall it
reduces speed -6 runtime by 2-5%.

Change-Id: I951922c50d901d0fff77a3bafc45992179bacef9

9 years agoMultiframe Quality Enhancement(MFQE) in VP9.
JackyChen [Tue, 2 Dec 2014 20:14:47 +0000 (12:14 -0800)]
Multiframe Quality Enhancement(MFQE) in VP9.

It is the first version of MFQE in VP9. There are a few TODOs included
in this version.
Usage: Add flag --enable-vp9-postproc to config the project.
In decoder, use flag --mfqe in the command line to enable
MFQE in postproc.
Note: Need to have key frame with low quality to see the effect of this
new patch. In my experiment, I fixed the qindex to 200 in key frame.

Change-Id: I021f9ce4616ed3574c81e48d968662994b56a396

9 years agoEnable neon idct tests for intrinsics
Johann [Wed, 10 Dec 2014 23:20:22 +0000 (15:20 -0800)]
Enable neon idct tests for intrinsics

Change-Id: I45d4a22f3ecb9af172e37c95f168805e492c5493

9 years agoVP9 common for ARMv8 by using NEON intrinsics 18
James Yu [Tue, 18 Feb 2014 13:56:46 +0000 (21:56 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 18

Add vp9_idct32x32_add_neon.c
- vp9_idct32x32_1024_add_neon

Change-Id: Ic598b772c28bd3487a8ead7a4598a66b25f9b00f
Signed-off-by: James Yu <james.yu@linaro.org>
9 years agoVP9 common for ARMv8 by using NEON intrinsics 14
James Yu [Fri, 7 Feb 2014 17:52:15 +0000 (01:52 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 14

Add vp9_idct16x16_add_neon.c
- vp9_idct16x16_256_add_neon_pass1
- vp9_idct16x16_256_add_neon_pass2
- vp9_idct16x16_10_add_neon_pass1
- vp9_idct16x16_10_add_neon_pass2

Change-Id: I54d25b54a36f4371760f54e4036693aaea40a5de
Signed-off-by: James Yu <james.yu@linaro.org>
9 years agoVP9 common for ARMv8 by using NEON intrinsics 13
James Yu [Sat, 1 Feb 2014 06:56:06 +0000 (14:56 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 13

Add vp9_idct8x8_add_neon.c
- vp9_idct8x8_64_add_neon
- vp9_idct8x8_10_add_neon

Change-Id: I6ee7b4496765aa36ed52990f2ef73e9f24459610
Signed-off-by: James Yu <james.yu@linaro.org>
9 years agoVP9 common for ARMv8 by using NEON intrinsics 12
James Yu [Sat, 1 Feb 2014 06:01:05 +0000 (14:01 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 12

Add vp9_idct4x4_add_neon.c
- vp9_idct4x4_16_add_neon

Change-Id: I011a96b10f1992dbd52246019ce05bae7ca8ea4f
Signed-off-by: James Yu <james.yu@linaro.org>
9 years agoVP9 common for ARMv8 by using NEON intrinsics 11
James Yu [Fri, 31 Jan 2014 05:18:15 +0000 (13:18 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 11

Add vp9_idct16x16_1_add_neon.c
- vp9_idct16x16_1_add_neon

Change-Id: I7c6524024ad4cb4e66aa38f1c887e733503c39df
Signed-off-by: James Yu <james.yu@linaro.org>
9 years agoVP9 common for ARMv8 by using NEON intrinsics 10
James Yu [Thu, 30 Jan 2014 07:26:31 +0000 (15:26 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 10

Add vp9_idct32x32_1_add_neon.c
- vp9_idct32x32_1_add_neon

Change-Id: If9ffe9a857228f5c67f61dc2b428b40965816eda
Signed-off-by: James Yu <james.yu@linaro.org>
9 years agoVP9 common for ARMv8 by using NEON intrinsics 09
James Yu [Thu, 30 Jan 2014 04:26:44 +0000 (12:26 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 09

Add vp9_idct8x8_1_add_neon.c
- vp9_idct8x8_1_add_neon

Change-Id: I9d23e01fa96013febbf64db6c76c6c955f14e3ff
Signed-off-by: James Yu <james.yu@linaro.org>