platform/upstream/libvpx.git
10 years agoMerge "Removing unused error_bins[] field from VP9_COMP."
Dmitry Kovalev [Tue, 14 Jan 2014 22:45:17 +0000 (14:45 -0800)]
Merge "Removing unused error_bins[] field from VP9_COMP."

10 years agoMerge "Reusing get_frame_new_buffer() function."
Dmitry Kovalev [Tue, 14 Jan 2014 22:40:48 +0000 (14:40 -0800)]
Merge "Reusing get_frame_new_buffer() function."

10 years agoMerge "Cleaning up vp9_encodeframe.c."
Dmitry Kovalev [Tue, 14 Jan 2014 22:14:49 +0000 (14:14 -0800)]
Merge "Cleaning up vp9_encodeframe.c."

10 years agoMerge "Adding get_vp9_ref_frame_buffer() function."
Dmitry Kovalev [Tue, 14 Jan 2014 22:12:45 +0000 (14:12 -0800)]
Merge "Adding get_vp9_ref_frame_buffer() function."

10 years agoMerge "Converting int_mv to MV."
Dmitry Kovalev [Tue, 14 Jan 2014 22:11:49 +0000 (14:11 -0800)]
Merge "Converting int_mv to MV."

10 years agoMerge "Minor fix on an assert"
Deb Mukherjee [Tue, 14 Jan 2014 21:57:17 +0000 (13:57 -0800)]
Merge "Minor fix on an assert"

10 years agoMinor fix on an assert
Deb Mukherjee [Tue, 14 Jan 2014 20:44:10 +0000 (12:44 -0800)]
Minor fix on an assert

Fixes assert that fails occasionally on small values of
max-key frame intervals. Also, adds a small change on
updating frames_to_key for frame drops.

Change-Id: Icc2b33b25e3e4ced7e49f8db73e0a887ef9c99e0

10 years agoMerge "Change the strategy for deciding the display size"
Adrian Grange [Tue, 14 Jan 2014 15:52:37 +0000 (07:52 -0800)]
Merge "Change the strategy for deciding the display size"

10 years agoMerge "fix a div by zero issue"
Yaowu Xu [Tue, 14 Jan 2014 02:04:30 +0000 (18:04 -0800)]
Merge "fix a div by zero issue"

10 years agoRemoving unused error_bins[] field from VP9_COMP.
Dmitry Kovalev [Tue, 14 Jan 2014 00:33:16 +0000 (16:33 -0800)]
Removing unused error_bins[] field from VP9_COMP.

Change-Id: I883eb9026b44cb354d5b01c0f1d34ecd71f942e4

10 years agoReusing get_frame_new_buffer() function.
Dmitry Kovalev [Mon, 13 Jan 2014 22:04:56 +0000 (14:04 -0800)]
Reusing get_frame_new_buffer() function.

Change-Id: Iac5c5aeaef62a4095a60d91285d2c7ad717db0fb

10 years agoMerge "Adding mv_has_subpel() function."
Dmitry Kovalev [Mon, 13 Jan 2014 20:00:51 +0000 (12:00 -0800)]
Merge "Adding mv_has_subpel() function."

10 years agoChange the strategy for deciding the display size
Adrian Grange [Fri, 13 Dec 2013 18:15:03 +0000 (10:15 -0800)]
Change the strategy for deciding the display size

There are three contributors to the definition of how the
display size is set:

(1) display width/height set in the container.
(2) display size (optional in the frame header)
(3) decoded frame size (from the frame header)

This patch modifies the way that vpxdec defines the display
size to give preference to these three criteria in the order
given above. If the container sets a non-zero size, it is
used, otherwise the display size specified in the first
decoded frame is used (if specified), with the raw
decoded frame size of the first frame used as a last resort.

The display size set in frames other than the first is
always ignored in this implementation.

Change-Id: I7e98d817d3f5894d559dd2aeb0a6cb1959b9092b

10 years agoMerge "Adding raw_read_frame() function to vpxdec."
Dmitry Kovalev [Mon, 13 Jan 2014 19:46:01 +0000 (11:46 -0800)]
Merge "Adding raw_read_frame() function to vpxdec."

10 years agoMerge "test_libvpx: fix negative CPU filter"
James Zern [Mon, 13 Jan 2014 19:25:59 +0000 (11:25 -0800)]
Merge "test_libvpx: fix negative CPU filter"

10 years agoConverting int_mv to MV.
Dmitry Kovalev [Mon, 13 Jan 2014 19:21:07 +0000 (11:21 -0800)]
Converting int_mv to MV.

Change-Id: Id31c0e100d275bd3650eaf5e4b8fe5ce648dbfaf

10 years agoMerge "Cleaning up and fixing psnr calculation code."
Dmitry Kovalev [Mon, 13 Jan 2014 18:59:26 +0000 (10:59 -0800)]
Merge "Cleaning up and fixing psnr calculation code."

10 years agoAdding mv_has_subpel() function.
Dmitry Kovalev [Mon, 13 Jan 2014 18:57:56 +0000 (10:57 -0800)]
Adding mv_has_subpel() function.

Change-Id: I50922bb1a689f8515debaa018f850b231c21189f

10 years agoAdding raw_read_frame() function to vpxdec.
Dmitry Kovalev [Mon, 13 Jan 2014 18:54:57 +0000 (10:54 -0800)]
Adding raw_read_frame() function to vpxdec.

Change-Id: Ie2a4606daf35b327d6f2ac8d7fd8f6cacf4c5b6a

10 years agoMerge "Enable reference frame masking for rt mode"
Yaowu Xu [Mon, 13 Jan 2014 18:52:00 +0000 (10:52 -0800)]
Merge "Enable reference frame masking for rt mode"

10 years agofix a div by zero issue
Yaowu Xu [Mon, 13 Jan 2014 18:23:28 +0000 (10:23 -0800)]
fix a div by zero issue

Change-Id: I091dfaa0ed5b9672eedd46d6097469d0802e24ef

10 years agoEnable reference frame masking for rt mode
Yaowu Xu [Mon, 13 Jan 2014 18:03:28 +0000 (10:03 -0800)]
Enable reference frame masking for rt mode

Reference frame masking helped good quality mode to gain about 5% in
encoding speed, this commit enable it for rt mode to gain the speed
improvement.

In addition, this commit move the speed feature setup to a separate
function.

Change-Id: I015e8f78bbb21dd43ae183b9b9355bea2ccda9c5

10 years agoMerge "mips dsp-ase r2 vp9 decoder fixed bug in extend frame module (seg fault)"
Johann [Mon, 13 Jan 2014 17:22:15 +0000 (09:22 -0800)]
Merge "mips dsp-ase r2 vp9 decoder fixed bug in extend frame module (seg fault)"

10 years agoNo arf right before real scene cut.
Paul Wilkins [Fri, 3 Jan 2014 14:14:04 +0000 (14:14 +0000)]
No arf right before real scene cut.

To reduce pulsing we now allow an arf just before forced key frames
and at the end of a clip or section (which may be stitched to
another clip or section). However, this does not make sense for
key frames arising from real scene cuts.

Change from original patch reflects other recent changes in regard
to alignment of gf/arf and kf groups.

Change-Id: I074a91d1207e9b3e28085af982f6718aa599775f

10 years agoFurther rate control tweaks and fixes.
Paul Wilkins [Thu, 9 Jan 2014 16:10:57 +0000 (16:10 +0000)]
Further rate control tweaks and fixes.

Further fixes regarding min and max rate.
Bug fixes re kf group bits and last kf group.

Change-Id: Iaafd719d30a489e135a3c55851ce8c632091a436

10 years agomips dsp-ase r2 vp9 decoder fixed bug in extend frame module (seg fault)
Parag Salasakar [Mon, 13 Jan 2014 09:14:18 +0000 (14:44 +0530)]
mips dsp-ase r2 vp9 decoder fixed bug in extend frame module (seg fault)

Change-Id: Ic46da8897d2fb5351e22d6d74805fd9d78c81b32

10 years agoMerge "cosmetics: vp9_reconinter.h: make some variables const"
James Zern [Sat, 11 Jan 2014 20:39:32 +0000 (12:39 -0800)]
Merge "cosmetics: vp9_reconinter.h: make some variables const"

10 years agoMerge "datarate_test: fix some type conversions"
James Zern [Sat, 11 Jan 2014 20:38:36 +0000 (12:38 -0800)]
Merge "datarate_test: fix some type conversions"

10 years agotest_libvpx: fix negative CPU filter
James Zern [Sat, 11 Jan 2014 03:08:44 +0000 (19:08 -0800)]
test_libvpx: fix negative CPU filter

negative patterns begin with _one_ '-', not one before each pattern.

https://code.google.com/p/googletest/wiki/V1_7_AdvancedGuide#Running_a_Subset_of_the_Tests

Change-Id: I6fd527b31bc2571dfdaa453cbbb57c77b3409563

10 years agoMerge "Apply neon flags to intrinsic files"
Johann [Sat, 11 Jan 2014 01:04:56 +0000 (17:04 -0800)]
Merge "Apply neon flags to intrinsic files"

10 years agoMerge "Cleaning up vp9_rc_postencode_update() function."
Dmitry Kovalev [Sat, 11 Jan 2014 00:53:35 +0000 (16:53 -0800)]
Merge "Cleaning up vp9_rc_postencode_update() function."

10 years agoCleaning up and fixing psnr calculation code.
Dmitry Kovalev [Sat, 11 Jan 2014 00:09:56 +0000 (16:09 -0800)]
Cleaning up and fixing psnr calculation code.

Introducing calc_psnr() which calculates psnr between two yv12 buffers.
Previously we incorrectly used width/height instead of
crop_width/crop_height to calculate number of samples -- fixed.

Change-Id: Iecda01980555de55ad347e0276e6641c793fa56c

10 years agoMerge "Cleaning up vp9_dx_iface.c."
Dmitry Kovalev [Sat, 11 Jan 2014 00:01:54 +0000 (16:01 -0800)]
Merge "Cleaning up vp9_dx_iface.c."

10 years agoMerge "Declare setup_buffer_inter in vp9_rdopt.h"
Jingning Han [Sat, 11 Jan 2014 00:01:07 +0000 (16:01 -0800)]
Merge "Declare setup_buffer_inter in vp9_rdopt.h"

10 years agoMerge "Enable skipping reference frame check in rd loop"
Jingning Han [Sat, 11 Jan 2014 00:00:56 +0000 (16:00 -0800)]
Merge "Enable skipping reference frame check in rd loop"

10 years agoMerge "Removing mi_height_log2_lookup table."
Dmitry Kovalev [Sat, 11 Jan 2014 00:00:56 +0000 (16:00 -0800)]
Merge "Removing mi_height_log2_lookup table."

10 years agoexplain speed features
Jim Bankoski [Fri, 10 Jan 2014 19:28:23 +0000 (11:28 -0800)]
explain speed features

Added comments to explain what the various speed features do, and removed
1 that was clearly unused.

Change-Id: Icd37a536072ddafedbfaefcecbe48979f6d10faf

10 years agoDeclare setup_buffer_inter in vp9_rdopt.h
Jingning Han [Fri, 10 Jan 2014 20:48:04 +0000 (12:48 -0800)]
Declare setup_buffer_inter in vp9_rdopt.h

This funtion initializes buffer pointers and first stage motion vector
prediction. It will be needed by both regular rate-distortion
optimization loop and the non-RD mode decision. Hence move its
declaration in vp9_rdopt.h

Change-Id: I64e8b6316c9d05f20756a62721533a2e4d158235

10 years agoCleaning up vp9_encodeframe.c.
Dmitry Kovalev [Fri, 10 Jan 2014 21:48:44 +0000 (13:48 -0800)]
Cleaning up vp9_encodeframe.c.

Change-Id: I6d9f595249dc71752abe16c042d3b07aa2e4248d

10 years agoRemoving mi_height_log2_lookup table.
Dmitry Kovalev [Fri, 10 Jan 2014 21:29:47 +0000 (13:29 -0800)]
Removing mi_height_log2_lookup table.

Change-Id: I1f0ae2edc3a96b33c0494d165ae756a8feba6184

10 years agoApply neon flags to intrinsic files
Johann [Fri, 10 Jan 2014 20:16:59 +0000 (12:16 -0800)]
Apply neon flags to intrinsic files

Filter out files ending in _neon.c and append .neon so the Android build
system knows to apply -mfpu=neon

Change-Id: Ib67277e5920bfcaeda7c4aa16cd1001b11d59305

10 years agoAdding get_vp9_ref_frame_buffer() function.
Dmitry Kovalev [Fri, 10 Jan 2014 19:59:38 +0000 (11:59 -0800)]
Adding get_vp9_ref_frame_buffer() function.

Change-Id: Iae195fcf952dd27ba424f8e95090b8ffc4d5a7c8

10 years agoMerge "Don't use gf_update by default for 1-pass CBR."
Marco Paniconi [Fri, 10 Jan 2014 19:43:20 +0000 (11:43 -0800)]
Merge "Don't use gf_update by default for 1-pass CBR."

10 years agoCleaning up vp9_dx_iface.c.
Dmitry Kovalev [Fri, 10 Jan 2014 19:01:52 +0000 (11:01 -0800)]
Cleaning up vp9_dx_iface.c.

Change-Id: I6a0dfb95c55ee6cadc7b1675782c7830e5c7caaf

10 years agoMerge "Fix Issue #679: vp9 C loop filter produces valgrind warning."
hkuang [Fri, 10 Jan 2014 18:59:00 +0000 (10:59 -0800)]
Merge "Fix Issue #679:  vp9 C loop filter produces valgrind warning."

10 years agoCleaning up vp9_rc_postencode_update() function.
Dmitry Kovalev [Fri, 10 Jan 2014 18:44:20 +0000 (10:44 -0800)]
Cleaning up vp9_rc_postencode_update() function.

Change-Id: I02e44c10660fdb9201a802ad19ceb64756feeebe

10 years agoDon't use gf_update by default for 1-pass CBR.
Marco Paniconi [Wed, 8 Jan 2014 20:34:18 +0000 (12:34 -0800)]
Don't use gf_update by default for 1-pass CBR.

Change-Id: I5df6abceb0a2a69706feadeb820b593cae88f573

10 years agoMerge "Adding {get, set}_rate_correction_factor() functions."
Dmitry Kovalev [Fri, 10 Jan 2014 18:30:04 +0000 (10:30 -0800)]
Merge "Adding {get, set}_rate_correction_factor() functions."

10 years agoFix Issue #679: vp9 C loop filter produces valgrind warning.
hkuang [Thu, 9 Jan 2014 18:36:50 +0000 (10:36 -0800)]
Fix Issue #679:  vp9 C loop filter produces valgrind warning.

Fix the valgrind error due to access uninitialized
memory in loopfilter.

Change-Id: I52fccf5ede845ee1f4c13d3bd909b8f220c0bdff

10 years agoMerge "Keep buffer clipped to maximum in change_config."
Marco Paniconi [Fri, 10 Jan 2014 17:33:33 +0000 (09:33 -0800)]
Merge "Keep buffer clipped to maximum in change_config."

10 years agoRevert "SSSE3 convolution optimization"
Paul Wilkins [Fri, 10 Jan 2014 12:28:16 +0000 (12:28 +0000)]
Revert "SSSE3 convolution optimization"

This reverts commit 511d218c60b9b6c1ab9383db746815e907af0359.

In current form intrinsics break borg build.

Change-Id: Ied37936af841250ecff449802e69a3d3761c91b9

10 years agoEnable skipping reference frame check in rd loop
Jingning Han [Fri, 10 Jan 2014 02:01:30 +0000 (18:01 -0800)]
Enable skipping reference frame check in rd loop

This commit allows encoder to compare the SAD cost associated with
the best motion vector predictor, per frame. If one reference frame
has this cost more than 4 times of the best SAD cost given by other
reference frames, skip NEARESTMV, NEARMV, ZEROMV mode check of this
reference frame.

This setting is turned on in speed 2 and above. Compression quality
change in speed 2:
derf  -0.014%
yt    -0.097%
hd    -0.023%
stdhd  0.046%

It reduces the speed 2 runtime of test sequences:
pedestrian_area_1080p 4000 kbps 310763 ms -> 303595 ms
bluesky_1080p 6000 kbps         259852 ms -> 251920 ms

Change-Id: I7f59cf79503d51836d61d56d50dc5bdf0e502e22

10 years agoMerge "Optimze inv 16x16 DCT with 10 non-zero coeffs - P2"
Jingning Han [Fri, 10 Jan 2014 02:17:25 +0000 (18:17 -0800)]
Merge "Optimze inv 16x16 DCT with 10 non-zero coeffs - P2"

10 years agoMerge "Optimze inv 16x16 DCT with 10 non-zero coeffs - P1"
Jingning Han [Fri, 10 Jan 2014 02:17:12 +0000 (18:17 -0800)]
Merge "Optimze inv 16x16 DCT with 10 non-zero coeffs - P1"

10 years agoMerge "Cleanups on refresh flags"
Deb Mukherjee [Fri, 10 Jan 2014 01:38:45 +0000 (17:38 -0800)]
Merge "Cleanups on refresh flags"

10 years agoCleanups on refresh flags
Deb Mukherjee [Thu, 9 Jan 2014 01:55:07 +0000 (17:55 -0800)]
Cleanups on refresh flags

Cleanups on frame refresh flags and external overrides.

Change-Id: Ia6a56fe1bde906b1dc3fcbf4ef1c7b207cd2df2d

10 years agoMerge "Use the correct member for initialization"
Johann [Thu, 9 Jan 2014 23:21:19 +0000 (15:21 -0800)]
Merge "Use the correct member for initialization"

10 years agoMerge "Simplify set_rt_speed_feature()"
Yaowu Xu [Thu, 9 Jan 2014 23:02:24 +0000 (15:02 -0800)]
Merge "Simplify set_rt_speed_feature()"

10 years agoKeep buffer clipped to maximum in change_config.
Marco Paniconi [Thu, 9 Jan 2014 22:17:00 +0000 (14:17 -0800)]
Keep buffer clipped to maximum in change_config.

Under a configuration change, where the bitrate suddenly decreases,
the buffer level may be larger than maximum allowed (for that first frame to be encoded after change_config).
This change keeps it clipped to its maximum level.

Change-Id: I4d0b5b3d1fd8148600dd39e02bd630c9464baba5

10 years agoMerge "Renaming 'Sharpness' to 'sharpness'."
Dmitry Kovalev [Thu, 9 Jan 2014 21:42:55 +0000 (13:42 -0800)]
Merge "Renaming 'Sharpness' to 'sharpness'."

10 years agoSimplify set_rt_speed_feature()
Yaowu Xu [Thu, 9 Jan 2014 19:50:24 +0000 (11:50 -0800)]
Simplify set_rt_speed_feature()

1. Made speed choices to be progressive
2. Adjusted rt speed settings to achieve better speed/quality

Overall, rt-5 gained 2.5% in compression/quality, encoding time of 720p
niklas clip goes from 137,052ms to 121,874ms

Change-Id: Ia6e7e1e15225395a868a2f1059c3db8e266e1600

10 years agoOptimze inv 16x16 DCT with 10 non-zero coeffs - P2
Jingning Han [Thu, 9 Jan 2014 20:43:40 +0000 (12:43 -0800)]
Optimze inv 16x16 DCT with 10 non-zero coeffs - P2

This commit further optimizes SSE2 operations in the second 1-D
inverse 16x16 DCT, with (<10) non-zero coefficients. The average
runtime of this module goes down from 779 cycles -> 725 cycles.

Change-Id: Iac31b123640d9b1e8f906e770702936b71f0ba7f

10 years agoMerge "SSSE3 convolution optimization"
Yunqing Wang [Thu, 9 Jan 2014 20:39:47 +0000 (12:39 -0800)]
Merge "SSSE3 convolution optimization"

10 years agoSSSE3 convolution optimization
levytamar82 [Thu, 21 Nov 2013 22:49:29 +0000 (15:49 -0700)]
SSSE3 convolution optimization

Optimizing all SSSE3 assembly for convolution:
1. vp9_filter_block1d4_h8_sse2
2. vp9_filter_block1d8_h8_sse2
3. vp9_filter_block1d16_h8_sse2
4. vp9_filter_block1d4_v8_sse2
5. vp9_filter_block1d8_v8_sse2
6. vp9_filter_block1d16_v8_sse2
my optimization include:
-processing 2x8 elements in one 128 bit register instead of processing
8 elements in one 128 bit register.
-removing unecessary loads.
This optimization gives between 2.4% user level gain for 480p input
and 1.6% user level gain for 720p.
This Optimization done only for 64bit.

Change-Id: Icb586dc0c938b56699864fcee6c52fd43b36b969

10 years agoMerge "Removing examples code generation and making them static."
Dmitry Kovalev [Thu, 9 Jan 2014 19:15:46 +0000 (11:15 -0800)]
Merge "Removing examples code generation and making them static."

10 years agoMerge "Using VP9_COMMON instead of VP9_COMP."
Dmitry Kovalev [Thu, 9 Jan 2014 19:15:29 +0000 (11:15 -0800)]
Merge "Using VP9_COMMON instead of VP9_COMP."

10 years agoMerge "VP8 for ARMv8 by using NEON intrinsics 01"
Johann [Thu, 9 Jan 2014 18:39:05 +0000 (10:39 -0800)]
Merge "VP8 for ARMv8 by using NEON intrinsics 01"

10 years agoVP8 for ARMv8 by using NEON intrinsics 01
James Yu [Tue, 17 Dec 2013 10:23:38 +0000 (18:23 +0800)]
VP8 for ARMv8 by using NEON intrinsics 01

Add bilinearpredict_neon_intrinsics.c
- vp8_bilinear_predict4x4_neon
- vp8_bilinear_predict8x4_neon
- vp8_bilinear_predict8x8_neon
- vp8_bilinear_predict16x16_neon

Change-Id: I33dfa502881219841b442dda32b73220e51b716b
Signed-off-by: James Yu <james.yu@linaro.org>
10 years agoMerge "Fix rate allocation bug."
Paul Wilkins [Thu, 9 Jan 2014 11:00:15 +0000 (03:00 -0800)]
Merge "Fix rate allocation bug."

10 years agoUse the correct member for initialization
Johann [Thu, 9 Jan 2014 01:42:04 +0000 (17:42 -0800)]
Use the correct member for initialization

On Windows this fails with:
error C2440: 'initializing': cannot convert from int_mv to uint32_t

Change-Id: I51630efd0e83a0ce620c91aa7859dd6fc1572e99

10 years agoUsing VP9_COMMON instead of VP9_COMP.
Dmitry Kovalev [Thu, 9 Jan 2014 02:36:38 +0000 (18:36 -0800)]
Using VP9_COMMON instead of VP9_COMP.

Change-Id: If7d3958653104f3e170853e931f8489de3ecf3cc

10 years agoMerge "Removing direct references to {lst_fb, gld_fb, alt_fb}_idx fields."
Dmitry Kovalev [Thu, 9 Jan 2014 02:12:09 +0000 (18:12 -0800)]
Merge "Removing direct references to {lst_fb, gld_fb, alt_fb}_idx fields."

10 years agoMerge "Install test sources for MSVS"
Johann [Thu, 9 Jan 2014 01:59:30 +0000 (17:59 -0800)]
Merge "Install test sources for MSVS"

10 years agoMerge "Cleanups around cpi->common."
Dmitry Kovalev [Thu, 9 Jan 2014 01:48:28 +0000 (17:48 -0800)]
Merge "Cleanups around cpi->common."

10 years agoAdding {get, set}_rate_correction_factor() functions.
Dmitry Kovalev [Thu, 9 Jan 2014 01:40:35 +0000 (17:40 -0800)]
Adding {get, set}_rate_correction_factor() functions.

Change-Id: Ib3212832953a3445fc5f021af0e1de7886f09b4f

10 years agoMerge "Renaming 'Mode' to 'mode'."
Dmitry Kovalev [Thu, 9 Jan 2014 00:29:29 +0000 (16:29 -0800)]
Merge "Renaming 'Mode' to 'mode'."

10 years agoInstall test sources for MSVS
Johann [Wed, 8 Jan 2014 23:45:14 +0000 (15:45 -0800)]
Install test sources for MSVS

Move the code outside the conditions. The test sources themselves are
also required for Visual Studio.

Change-Id: Id5e93ebc7369e1807eba0b9dc4f7d0f18033d794

10 years agoOptimze inv 16x16 DCT with 10 non-zero coeffs - P1
Jingning Han [Tue, 7 Jan 2014 22:35:02 +0000 (14:35 -0800)]
Optimze inv 16x16 DCT with 10 non-zero coeffs - P1

This commit is the first patch optimizing SSE2 implementation of inverse
16x16 DCT with <10 non-zero coefficients. It focused on the first 1-D (row)
transformation. It exploits the fact that only top-left 4x4 block contains
non-zero coefficients, in a 2-D inverse 16x16 DCT with <10 coeffients.

The average runtime of idct16x16_10 unit is reduced from
883 cycles -> 779 cycles (12% faster).

For pedestrian_area_1080p 300 frames at 4000 kbps, the speed 2 runtime goes
down from 310651 ms  -> 305910 ms. The decoding speed goes up from
80.37 fps -> 80.87 fps.

Change-Id: Ic6f3ac5a637a76c07ba73ddaafe318a699fea645

10 years agoRemoving direct references to {lst_fb, gld_fb, alt_fb}_idx fields.
Dmitry Kovalev [Wed, 8 Jan 2014 23:21:41 +0000 (15:21 -0800)]
Removing direct references to {lst_fb, gld_fb, alt_fb}_idx fields.

Change-Id: Ib1d9628d2b538b6dc27b0db1fa7f40f70ff2072f

10 years agoCleanups around cpi->common.
Dmitry Kovalev [Wed, 8 Jan 2014 22:51:00 +0000 (14:51 -0800)]
Cleanups around cpi->common.

Change-Id: I0c42a729038d0f4cb7bc07f587d066fcb1dfe9d9

10 years agoMerge "Add a C fallback for get_msb() and change inline to INLINE."
Alex Converse [Wed, 8 Jan 2014 22:43:46 +0000 (14:43 -0800)]
Merge "Add a C fallback for get_msb() and change inline to INLINE."

10 years agoMerge "Add initial intra frame neon optimization. 1~2% gain."
hkuang [Wed, 8 Jan 2014 22:41:43 +0000 (14:41 -0800)]
Merge "Add initial intra frame neon optimization. 1~2% gain."

10 years agoRenaming 'Mode' to 'mode'.
Dmitry Kovalev [Wed, 8 Jan 2014 22:33:59 +0000 (14:33 -0800)]
Renaming 'Mode' to 'mode'.

Change-Id: I6cdd670d66288dbd66228f38bba6b30502d25362

10 years agoRenaming 'Sharpness' to 'sharpness'.
Dmitry Kovalev [Wed, 8 Jan 2014 22:19:14 +0000 (14:19 -0800)]
Renaming 'Sharpness' to 'sharpness'.

Change-Id: I54513dc3b3321e0c0bb6b15ea5c34085ed80b4a4

10 years agoMerge "Using struct twopass_rc* instead of VP9_COMP*."
Dmitry Kovalev [Wed, 8 Jan 2014 22:14:05 +0000 (14:14 -0800)]
Merge "Using struct twopass_rc* instead of VP9_COMP*."

10 years agoAdd a C fallback for get_msb() and change inline to INLINE.
Alex Converse [Wed, 8 Jan 2014 20:25:47 +0000 (12:25 -0800)]
Add a C fallback for get_msb() and change inline to INLINE.

For systems without __builtin_clz() or _BitScanReverse(), taken from libwep

Change-Id: Iead257efc1772c466c79e1dc0356ed571d38d43e

10 years agoAdd initial intra frame neon optimization. 1~2% gain.
hkuang [Mon, 6 Jan 2014 22:34:09 +0000 (14:34 -0800)]
Add initial intra frame neon optimization. 1~2% gain.

More intra optimizations will be added.

Change-Id: I33ae8d93f6002bf7b64cc2669602d9e6bfa5a6e8

10 years agoMerge "AVX2 Variance Optimization"
Yunqing Wang [Wed, 8 Jan 2014 19:33:42 +0000 (11:33 -0800)]
Merge "AVX2 Variance Optimization"

10 years agoMerge "Include gen_msvs_vcxproj.sh"
Johann [Wed, 8 Jan 2014 19:10:03 +0000 (11:10 -0800)]
Merge "Include gen_msvs_vcxproj.sh"

10 years agoMerge "Replace RD modeling with a fixed point approximation."
Alex Converse [Wed, 8 Jan 2014 19:06:54 +0000 (11:06 -0800)]
Merge "Replace RD modeling with a fixed point approximation."

10 years agoAVX2 Variance Optimization
levytamar82 [Sun, 29 Dec 2013 08:23:50 +0000 (01:23 -0700)]
AVX2 Variance Optimization

Optimizing the variance functions: vp9_variance16x16, vp9_variance32x32,
vp9_variance64x64, vp9_variance32x16, vp9_variance64x32,
vp9_mse16x16 by migrating to AVX2
some of the functions were optimized by processing 32 elements instead of 16.
some of the functions were optimized by processing 2 loop strides of 16
elements in a single 256 bit register
This optimization gives between 2.4% - 2.7% user level performance gain
and 42% function level gain.

Change-Id: I265ae08a2b0196057a224a86450153ef3aebd85d

10 years agoReplace RD modeling with a fixed point approximation.
Alex Converse [Fri, 3 Jan 2014 21:24:11 +0000 (13:24 -0800)]
Replace RD modeling with a fixed point approximation.

Change-Id: I44eb44eb3f36c05d916ef140ef42cc84f72f99ec

10 years agoMerge "Fix an issue in motion vector prediction stage"
Jingning Han [Wed, 8 Jan 2014 18:06:03 +0000 (10:06 -0800)]
Merge "Fix an issue in motion vector prediction stage"

10 years agoInclude gen_msvs_vcxproj.sh
Johann [Wed, 8 Jan 2014 17:51:15 +0000 (09:51 -0800)]
Include gen_msvs_vcxproj.sh

Change-Id: I28e9cf9347acd7279df3b841863a248479633265

10 years agoMerge "Further rate control cleanups"
Deb Mukherjee [Wed, 8 Jan 2014 17:20:29 +0000 (09:20 -0800)]
Merge "Further rate control cleanups"

10 years agoMerge "Remove yasm.rules dependency"
Johann [Wed, 8 Jan 2014 16:42:25 +0000 (08:42 -0800)]
Merge "Remove yasm.rules dependency"

10 years agoFix rate allocation bug.
Paul Wilkins [Mon, 6 Jan 2014 17:05:47 +0000 (17:05 +0000)]
Fix rate allocation bug.

Fix miss alignment of the frames contributing to the
error score and bit allocation for gf/arf groups.

Initial results slightly +.

Change-Id: Ie508bdcfdac52e592d48e1f13e01b3551b523deb

10 years agoRemoving examples code generation and making them static.
Dmitry Kovalev [Tue, 7 Jan 2014 23:15:25 +0000 (15:15 -0800)]
Removing examples code generation and making them static.

All documentation will be provided as comments in the source files.

Change-Id: Ie609852747733c181191f864204c787a6b23ef3a

10 years agoFurther rate control cleanups
Deb Mukherjee [Mon, 6 Jan 2014 23:19:22 +0000 (15:19 -0800)]
Further rate control cleanups

Some cleanups on frames_to_key, frames_since_key.
Also removes the unused fixed_q parameters in vp9.

Change-Id: If8743a32c71de30a8d17136477b53d607a7acda8

10 years agoFix an issue in motion vector prediction stage
Jingning Han [Tue, 7 Jan 2014 17:53:38 +0000 (09:53 -0800)]
Fix an issue in motion vector prediction stage

The previous implementation stops motion vector prediction test when
the zero motion vector appears for the second time. This commit fixes
it by simply skipping the second time check on zero mv and continuing
on to next mv candidate.

It slightly improves stdhd in speed 2 by 0.06% on average. Most static
sequences are not affected. A few hard ones, like jet, ped, and riverbed
were improved by 0.1 - 0.2%.

Change-Id: Ia8d4e2ffb7136669e8ad1fb24ea6e8fdd6b9a3c1