platform/upstream/libvpx.git
11 years agoMerge "Speed up idct16x16 by rearrange instructions."
hkuang [Tue, 10 Sep 2013 15:23:57 +0000 (08:23 -0700)]
Merge "Speed up idct16x16 by rearrange instructions."

11 years agoModified mode skip functionality.
Paul Wilkins [Thu, 5 Sep 2013 00:15:05 +0000 (17:15 -0700)]
Modified mode skip functionality.

A previous speed feature skipped modes not used in earlier
partitions but this not longer worked as intended following
changes to the partition coding order and in conjunction
with some other speed features (Especially speed 2 and above).

This modified mode skip feature sets a mask after the first X
modes have been tested in each partition depending on the
reference frame of the current best case.

This patch also makes some changes to the order modes are
tested to fit better with this skip functionality.

Initial testing suggests speed and rd hit count improvements
of up to 20% at speed 1. Quality results. (derf -1.9%, std hd  +0.23%).

Change-Id: Idd8efa656cbc0c28f06d09690984c1f18b1115e1

11 years agoAdded extra check to rd_auto_partition_range()
Paul Wilkins [Tue, 3 Sep 2013 22:46:22 +0000 (15:46 -0700)]
Added extra check to rd_auto_partition_range()

Added check that the returned max and minimum are
valid in bottom and right border cases.

Change-Id: I2d6cdc9b5f04c7d0ff512ddcf3228331e028bf9b

11 years agotest/idct_test: add missing vpx_integer.h include
James Zern [Tue, 10 Sep 2013 05:20:41 +0000 (22:20 -0700)]
test/idct_test: add missing vpx_integer.h include

Change-Id: I9de764638ec981bb34fc8e183985d8c285b006fb

11 years agoSpeed up idct16x16 by rearrange instructions.
hkuang [Mon, 9 Sep 2013 18:36:51 +0000 (11:36 -0700)]
Speed up idct16x16 by rearrange instructions.

Speed improve from 376% to 400% faster base on assembly-perf.

Change-Id: If0b2eccc39d5793dc101ce9feb7fcadf88396ea2

11 years agoMerge "API extensions and sample app for spacial scalable encoder"
Ivan Maltz [Mon, 9 Sep 2013 23:57:01 +0000 (16:57 -0700)]
Merge "API extensions and sample app for spacial scalable encoder"

11 years agoAPI extensions and sample app for spacial scalable encoder
Ivan Maltz [Thu, 5 Sep 2013 15:55:47 +0000 (08:55 -0700)]
API extensions and sample app for spacial scalable encoder

Sample app: vp9_spatial_scalable_encoder
vpx_codec_control extensions:
  VP9E_SET_SVC
  VP9E_SET_WIDTH, VP9E_SET_HEIGHT, VP9E_SET_LAYER
  VP9E_SET_MIN_Q, VP9E_SET_MAX_Q
expanded buffer size for vp9_convolve

modified setting of initial width in vp9_onyx_if.c so that layer size
can be set prior to initial encode

Default number of layers set to 3 (VPX_SS_DEFAULT_LAYERS)
Number of layers set explicitly in vpx_codec_enc_cfg.ss_number_layers

Change-Id: I2c7a6fe6d665113671337032f7ad032430ac4197

11 years agoMerge "Revert "New mode_info_context storage""
James Zern [Mon, 9 Sep 2013 21:38:01 +0000 (14:38 -0700)]
Merge "Revert "New mode_info_context storage""

11 years agoRevert "New mode_info_context storage"
James Zern [Mon, 9 Sep 2013 20:37:01 +0000 (13:37 -0700)]
Revert "New mode_info_context storage"

This reverts commit dae17734ece414091ba1184f7becd0aa6c0004f1

Encode crashes, leaks and increases integer overflow errors.

Change-Id: I595aa2649bb8d0b6552ff91652837a74c103fda2

11 years agochanged to enable vp9_postproc
Yaowu Xu [Fri, 6 Sep 2013 22:05:05 +0000 (15:05 -0700)]
changed to enable vp9_postproc

In configure when internal-stats is enabled, because postprocessing
code is needed for computing stats for enabling internal-stats

Change-Id: I3601dc5a4aa65feb99465452486a21e75eb62c1f

11 years agoMerge "Reduce the amount of extension in src frames"
Yaowu Xu [Mon, 9 Sep 2013 15:09:56 +0000 (08:09 -0700)]
Merge "Reduce the amount of extension in src frames"

11 years agoMerge "Enable kf restrictions at speed 4"
Paul Wilkins [Mon, 9 Sep 2013 12:39:13 +0000 (05:39 -0700)]
Merge "Enable kf restrictions at speed 4"

11 years agoReduce the amount of extension in src frames
Yaowu Xu [Fri, 23 Aug 2013 23:22:50 +0000 (16:22 -0700)]
Reduce the amount of extension in src frames

The commit changes the border pixel extension from 160 pixel each side
to what is necessary in arnr filter or motion estimation portion, i.e.
16 pixel on top and left side. For right or bottom side, the extension
is changed to either round up image size to multiple of 64 or at least
16 pixels.

Change-Id: Ic05e19b94368c1ab4df568723aae5734e6c3d2c5

11 years agoMerge "New mode_info_context storage"
Jim Bankoski [Sun, 8 Sep 2013 14:16:25 +0000 (07:16 -0700)]
Merge "New mode_info_context storage"

11 years agoFix overflow issue in 16x16 quantization SSSE3
Jingning Han [Fri, 6 Sep 2013 23:06:21 +0000 (16:06 -0700)]
Fix overflow issue in 16x16 quantization SSSE3

The 16x16 transform unit test suggested that the peak coefficient
value can reach 32639. This could cause potential overflow issue
in the SSSE3 implmentation of 16x16 block quantization. This commit
fixes this issue by replacing addition with saturated addition.

Change-Id: I6d5bb7c5faad4a927be53292324bd2728690717e

11 years agoMerge "Support a constant quality mode in VP9"
Deb Mukherjee [Fri, 6 Sep 2013 18:22:54 +0000 (11:22 -0700)]
Merge "Support a constant quality mode in VP9"

11 years agoEnable kf restrictions at speed 4
Paul Wilkins [Thu, 29 Aug 2013 23:29:53 +0000 (00:29 +0100)]
Enable kf restrictions at speed 4

Change-Id: I453409d3be3f5fe118b15affde45cb52184aef20

11 years agoSupport a constant quality mode in VP9
Deb Mukherjee [Thu, 29 Aug 2013 23:21:44 +0000 (16:21 -0700)]
Support a constant quality mode in VP9

Adds a new end-usage option for constant quality encoding in vpx. This
first version implemented for VP9, encodes all regular inter frames
using the quality specified in the --cq-level= option, while encoding
all key frames and golden/altref frames at a quality better than that.

The current performance on derfraw300 is +0.910% up from bitrate control,
but achieved without multiple recode loops per frame.

The decision for qp for each altref/golden/key frame will be improved
in subsequent patches based on better use of stats from the first pass.
Further, the qp for regular inter frames may also be varied around the
provided cq-level.

Change-Id: I6c4a2a68563679d60e0616ebcb11698578615fb3

11 years agocleanup cpplint warnings
Yaowu Xu [Thu, 5 Sep 2013 15:45:56 +0000 (08:45 -0700)]
cleanup cpplint warnings

Suggested by James Zern to clear out cpplint warnings for all unit
test code.

Change-Id: I731a3fa4d2a257eb9ef733426ba84286fbd7ea34

11 years agoNew mode_info_context storage
Scott LaVarnway [Fri, 6 Sep 2013 16:33:34 +0000 (12:33 -0400)]
New mode_info_context storage

mode_info_context was stored as a grid of MODE_INFO structs.
The grid now constists of a pointer to a MODE_INFO struct and
a "in the image" flag.  The MODE_INFO structs are now stored
as a stream, eliminating unnecessary copies and is a little
more cache friendly.

For the test clips used, the decoder performance improved
by ~4.3% (1080p) and ~9.7% (720p).

Patch Set 2: Re-encoded clips with latest. Now ~1.7% (1080p)
and 5.9% (720p).

Change-Id: I846f29e88610fce2523ca697a9a9ef2a182e9256

11 years agoMerge "fix loop filter setup_mask could reach out of bounds issue"
Jim Bankoski [Fri, 6 Sep 2013 13:21:28 +0000 (06:21 -0700)]
Merge "fix loop filter setup_mask could reach out of bounds issue"

11 years agoMerge "Speed up idct8x8 by rearrange instructions. Speed improve from 264% ~ 270...
hkuang [Fri, 6 Sep 2013 00:37:13 +0000 (17:37 -0700)]
Merge "Speed up idct8x8 by rearrange instructions. Speed improve from 264% ~ 270% to 280% ~ 300% base on assembly-perf."

11 years agofix loop filter setup_mask could reach out of bounds issue
Jim Bankoski [Thu, 5 Sep 2013 22:53:31 +0000 (15:53 -0700)]
fix loop filter setup_mask could reach out of bounds issue

Change-Id: Ic8446c4f26b6782a6dc482c19ea73c77646df418

11 years agoMerge "Enable 32x32 Transform unit test"
Jingning Han [Thu, 5 Sep 2013 22:23:27 +0000 (15:23 -0700)]
Merge "Enable 32x32 Transform unit test"

11 years agoEnable 32x32 Transform unit test
Jingning Han [Tue, 3 Sep 2013 18:57:34 +0000 (11:57 -0700)]
Enable 32x32 Transform unit test

This commit enabled a full functional test on 32x32 forward/inverse
transform, including round-trip error and memory overflow check. It
tests the prototype functions in C and all other implementations if
applicable.

Change-Id: I9cc50b05abdb4863e7abbcb29209a19b1fe90da7

11 years agoMerge "Use saturated addition in SSSE3 of 32x32 quant"
Jingning Han [Thu, 5 Sep 2013 21:09:40 +0000 (14:09 -0700)]
Merge "Use saturated addition in SSSE3 of 32x32 quant"

11 years agoMerge "resolve clang warnings : uninitialized vars in vp9_entropy.h"
Jim Bankoski [Thu, 5 Sep 2013 19:55:32 +0000 (12:55 -0700)]
Merge "resolve clang warnings : uninitialized vars in vp9_entropy.h"

11 years agoUse saturated addition in SSSE3 of 32x32 quant
Jingning Han [Wed, 4 Sep 2013 19:03:28 +0000 (12:03 -0700)]
Use saturated addition in SSSE3 of 32x32 quant

The 32x32 forward transform can potentially reach peak coefficient
value close to 32700, while the rounding factor can go upto 610.
This could cause overflow issue in the SSSE3 implementation of 32x32
quantization process.

This commit resolves this issue by replacing the addition operations
with saturated addition operations in 32x32 block quantization.

Change-Id: Id6b98996458e16c5b6241338ca113c332bef6e70

11 years agoMerge "faster accounting of inc_mv"
Jim Bankoski [Thu, 5 Sep 2013 19:38:56 +0000 (12:38 -0700)]
Merge "faster accounting of inc_mv"

11 years agoMerge "make bsize requirement for SEG_LVL_SKIP explicit"
Yaowu Xu [Thu, 5 Sep 2013 15:15:03 +0000 (08:15 -0700)]
Merge "make bsize requirement for SEG_LVL_SKIP explicit"

11 years agoMerge "Added ClearSystemState in a unit test"
Yaowu Xu [Thu, 5 Sep 2013 15:14:44 +0000 (08:14 -0700)]
Merge "Added ClearSystemState in a unit test"

11 years agoresolve clang warnings : uninitialized vars in vp9_entropy.h
Jim Bankoski [Thu, 5 Sep 2013 01:38:41 +0000 (18:38 -0700)]
resolve clang warnings : uninitialized vars in vp9_entropy.h

This helps clear out some of the warnings

Change-Id: Ie7ccaca8fd92542386a7f1b257398e1bdf2f55dc

11 years agoMerge "wrap non420 loop filter code in macro"
Jim Bankoski [Thu, 5 Sep 2013 00:20:53 +0000 (17:20 -0700)]
Merge "wrap non420 loop filter code in macro"

11 years agoMerge "Attempt to fix speed 4"
Paul Wilkins [Thu, 5 Sep 2013 00:19:22 +0000 (17:19 -0700)]
Merge "Attempt to fix speed 4"

11 years agomake bsize requirement for SEG_LVL_SKIP explicit
Yaowu Xu [Wed, 4 Sep 2013 23:32:26 +0000 (16:32 -0700)]
make bsize requirement for SEG_LVL_SKIP explicit

The segment feature SEG_LVL_SKIP requires the prediction unit size
to be at least BLOCK_8X8. This commit makes the requirement to be
explicit. This is to prevent future encoder implementations from
making wrong choices.

Change-Id: I0127f0bd4c66e130b81f0cb0a8d3dbfe3b2da5c2

11 years agoSpeed up idct8x8 by rearrange instructions.
hkuang [Wed, 4 Sep 2013 22:41:26 +0000 (15:41 -0700)]
Speed up idct8x8 by rearrange instructions.
Speed improve from 264% ~ 270% to 280% ~ 300% base on assembly-perf.

Change-Id: I3e2cc818ec14b432204ff43732f39b6438db685d

11 years agoAdded ClearSystemState in a unit test
Yaowu Xu [Tue, 3 Sep 2013 20:50:17 +0000 (13:50 -0700)]
Added ClearSystemState in a unit test

There is another unit test that has been failing randomly on win32
build. Investigation has shown that the failure was caused by simd
register state is not reset appropriately in the fdct8x8 test. This
commit added ClearSystemState() in the teardown of this test, tests
showed it resolved the random failure issue for win32 build.

Related issue: https://code.google.com/p/webm/issues/detail?id=614

Change-Id: I9381d0c1a6f4b855ccaeef1aca8c417ac8c71ee2

11 years agoMerge "Fixing problem with invalid delta_q reading."
Yaowu Xu [Wed, 4 Sep 2013 21:21:30 +0000 (14:21 -0700)]
Merge "Fixing problem with invalid delta_q reading."

11 years agoMerge "Add neon optimize vp9_short_iht4x4_add."
hkuang [Wed, 4 Sep 2013 20:35:09 +0000 (13:35 -0700)]
Merge "Add neon optimize vp9_short_iht4x4_add."

11 years agoAdd neon optimize vp9_short_iht4x4_add.
hkuang [Tue, 3 Sep 2013 17:19:21 +0000 (10:19 -0700)]
Add neon optimize vp9_short_iht4x4_add.

Change-Id: I42c497b68ae1ee645b59c9968ad805db0a43e37e

11 years agoFixing problem with invalid delta_q reading.
Dmitry Kovalev [Thu, 29 Aug 2013 22:33:06 +0000 (15:33 -0700)]
Fixing problem with invalid delta_q reading.

This is a bitstream change but no currently produces videos should
be affected. https://code.google.com/p/webm/issues/detail?id=610

Change-Id: Ic85a6477df6c201cdf7f70f6bd84607b71f4593c

11 years agoMerge "Replacing init_dequantizer() with setup_plane_dequants()."
Yaowu Xu [Wed, 4 Sep 2013 17:42:12 +0000 (10:42 -0700)]
Merge "Replacing init_dequantizer() with setup_plane_dequants()."

11 years agoMerge "speed up inc_mv_component"
Jim Bankoski [Wed, 4 Sep 2013 17:35:51 +0000 (10:35 -0700)]
Merge "speed up inc_mv_component"

11 years agoMerge "make vp9 postproc a config option"
Jim Bankoski [Wed, 4 Sep 2013 17:35:26 +0000 (10:35 -0700)]
Merge "make vp9 postproc a config option"

11 years agoMerge "Use correct bit cost while static-thresh is on"
Yunqing Wang [Wed, 4 Sep 2013 17:26:37 +0000 (10:26 -0700)]
Merge "Use correct bit cost while static-thresh is on"

11 years agowrap non420 loop filter code in macro
Jim Bankoski [Tue, 3 Sep 2013 02:04:37 +0000 (19:04 -0700)]
wrap non420 loop filter code in macro

Change-Id: I62bca0e7a4bffc1a78b750dbb9df9d2378e92423

11 years agomake vp9 postproc a config option
Jim Bankoski [Wed, 4 Sep 2013 17:02:08 +0000 (10:02 -0700)]
make vp9 postproc a config option

Vp9 postproc is disabled for now as its not been shown to help and
may be merged with vp8.

Change-Id: I25620d6cd34c6e10331b18c7b5ef7482e39c6057

11 years agofaster accounting of inc_mv
Jim Bankoski [Wed, 4 Sep 2013 16:47:57 +0000 (09:47 -0700)]
faster accounting of inc_mv

Moves counting of mv branches to where we have a new mv, instead of after
the whole frame is summed.

Change-Id: I945d9f6d9199ba2443fe816c92d5849340d17bbd

11 years agoReplacing init_dequantizer() with setup_plane_dequants().
Dmitry Kovalev [Wed, 28 Aug 2013 21:49:09 +0000 (14:49 -0700)]
Replacing init_dequantizer() with setup_plane_dequants().

Change-Id: Ib67e996b4a6dcb6f481889f5a0d84811a9e3c5d1

11 years agospeed up inc_mv_component
Jim Bankoski [Tue, 3 Sep 2013 22:49:58 +0000 (15:49 -0700)]
speed up inc_mv_component

Convert mv_class if statements to look up.  re order to avoid ifs...

Change-Id: I76966a21bf517bb1f9a7957c08c476c7bb3e9a63

11 years agoMerge "Fix intermediate height in convolve_c"
James Zern [Tue, 3 Sep 2013 22:50:33 +0000 (15:50 -0700)]
Merge "Fix intermediate height in convolve_c"

11 years agoAttempt to fix speed 4
Paul Wilkins [Fri, 30 Aug 2013 23:39:26 +0000 (00:39 +0100)]
Attempt to fix speed 4

Speed 4 fixed partition size. Use fixed size unless it does not
fit inside image, in which case use the largest size that does.

Change-Id: I250f7a80506750dd82ab355721624a1344247223

11 years agoMerge "Fix 32x32 forward transform SSE2 version"
Jingning Han [Tue, 3 Sep 2013 15:58:03 +0000 (08:58 -0700)]
Merge "Fix 32x32 forward transform SSE2 version"

11 years agoMerge "Improved mb_lpf_horizontal_edge_w_sse2_8"
Scott LaVarnway [Tue, 3 Sep 2013 12:44:01 +0000 (05:44 -0700)]
Merge "Improved mb_lpf_horizontal_edge_w_sse2_8"

11 years agoFix 32x32 forward transform SSE2 version
Jingning Han [Fri, 30 Aug 2013 17:57:23 +0000 (10:57 -0700)]
Fix 32x32 forward transform SSE2 version

This commit fixed the potential overflow issue in the SSE2
implementation of 32x32 forward DCT. It resolved the corrupted
coded frames in the border of scenes.

Change-Id: If87eef2d46209269f74ef27e7295b6707fbf56f9

11 years agoUse correct bit cost while static-thresh is on
Yunqing Wang [Fri, 30 Aug 2013 22:19:49 +0000 (15:19 -0700)]
Use correct bit cost while static-thresh is on

While static-thresh is on, we only need to transmit skip
flag if skip = 1. The cost of skip bit is added to the
total rate cost.

Change-Id: I64e73e482bc297eba22907026298a15fa8cc3920

11 years agoMerge "Added per pixel inter rd hit count stats"
Paul Wilkins [Fri, 30 Aug 2013 15:56:01 +0000 (08:56 -0700)]
Merge "Added per pixel inter rd hit count stats"

11 years agoMerge "Refactor 16x16 unit tests"
Jingning Han [Fri, 30 Aug 2013 15:53:19 +0000 (08:53 -0700)]
Merge "Refactor 16x16 unit tests"

11 years agoFix intermediate height in convolve_c
Tero Rintaluoma [Thu, 22 Aug 2013 08:29:19 +0000 (11:29 +0300)]
Fix intermediate height in convolve_c

- Intermediate height was not correct i.e. when block size is 4 and
  y_step_q4 is 6. In this case intermediate height was
  (4*6) >> 4 = 1 and vertical interpolation needs two source pixels
  plus 7 extra pixels for taps.
- Also if the current output block is 16x16 and we are using 4x upscaling
  we need only 12 rows after horizontal filtering instead of 16.

  Patch Set 2: Intermediate_height updated after CL 66723
               "Fix bug in convolution functions (filter selection)"

Change-Id: I5a1a1bc2ac9d5edb3a6e0818de618bf318fdd589

11 years agoMerge "rework filter_block_plane"
Jim Bankoski [Fri, 30 Aug 2013 03:11:09 +0000 (20:11 -0700)]
Merge "rework filter_block_plane"

11 years agorework filter_block_plane
Jim Bankoski [Fri, 30 Aug 2013 00:00:05 +0000 (17:00 -0700)]
rework filter_block_plane

Change-Id: I55c3b60c4c0f4910d3dfb70e3edaae00cfa8dc4d

11 years agoRefactor 16x16 unit tests
Jingning Han [Wed, 28 Aug 2013 00:03:46 +0000 (17:03 -0700)]
Refactor 16x16 unit tests

Make the new test module comply to the unit test rules.

Change-Id: Id79ff7f03f870973ffbc74f26d64edb418b75299

11 years agoMerge "Fix overflow issue in SSSE3 32x32 quantization"
Jingning Han [Thu, 29 Aug 2013 23:49:04 +0000 (16:49 -0700)]
Merge "Fix overflow issue in SSSE3 32x32 quantization"

11 years agoAdded per pixel inter rd hit count stats
Paul Wilkins [Wed, 21 Aug 2013 11:34:14 +0000 (12:34 +0100)]
Added per pixel inter rd hit count stats

Added some code to output normalized rd hit count stats.
In effect this approximates to the average number of rd
operations/tests per pixel for the sequence.

The results are not quite accurate and I have not bothered
to account for partial SB64s at frame edges and for key frames
However they do give some idea of the number of modes /
prediction methods being tested for each pixel across the
different partition sizes. This indicates how much scope their
is for further gains either by reducing the number of partitions
examined or the modes per partition through heuristics.

Patch 3 moved place where count incremented so partial rd
tests that are aborted with INT_MAX return are also counted.

Example numbers for first 50 frames of Akiyo.
Speed 0 ~84.4 rd operations / pixel
Speed 1 ~28.8
Speed 2 ~11.9

Change-Id: Ib956e787e12f7fa8b12d3a1a2f6cda19a65a6cb8

11 years agoMerge "Adds a speed feature for fast 1-loop forw updates"
Deb Mukherjee [Thu, 29 Aug 2013 22:54:04 +0000 (15:54 -0700)]
Merge "Adds a speed feature for fast 1-loop forw updates"

11 years agoMerge changes Ib1e853f9,Ifd75c809,If3e83404
James Zern [Thu, 29 Aug 2013 22:50:56 +0000 (15:50 -0700)]
Merge changes Ib1e853f9,Ifd75c809,If3e83404

* changes:
  consistently name VP9_COMMON variables #3
  consistently name VP9_COMMON variables #2
  consistently name VP9_COMMON variables #1

11 years agoMerge "Fixed potential overflows"
Yaowu Xu [Thu, 29 Aug 2013 22:43:26 +0000 (15:43 -0700)]
Merge "Fixed potential overflows"

11 years agoconsistently name VP9_COMMON variables #3
James Zern [Sat, 24 Aug 2013 02:30:33 +0000 (19:30 -0700)]
consistently name VP9_COMMON variables #3

stragglers

Change-Id: Ib1e853f9a331b7b66639dc34d79568d84d1930f1

11 years agoconsistently name VP9_COMMON variables #2
James Zern [Fri, 23 Aug 2013 03:04:24 +0000 (20:04 -0700)]
consistently name VP9_COMMON variables #2

oci -> cm

Change-Id: Ifd75c809d9cc99034d3c2fccc4653a78b3aec21f

11 years agoconsistently name VP9_COMMON variables #1
James Zern [Fri, 23 Aug 2013 03:03:08 +0000 (20:03 -0700)]
consistently name VP9_COMMON variables #1

pc -> cm

Change-Id: If3e83404f574316fdd3b9aace2487b64efdb66f3

11 years agoMerge "Renaming txfm_size to tx_size."
Dmitry Kovalev [Thu, 29 Aug 2013 19:30:18 +0000 (12:30 -0700)]
Merge "Renaming txfm_size to tx_size."

11 years agoFix overflow issue in SSSE3 32x32 quantization
Jingning Han [Mon, 26 Aug 2013 23:12:16 +0000 (16:12 -0700)]
Fix overflow issue in SSSE3 32x32 quantization

The 32x32 quantization process can potentially have the intermediate
stacks over 16-bit range, thereby causing enc/dec mismatch. This commit
fixes this overflow issue in the SSSE3 implementation, as well as the
prototype, of 32x32 quantization.

This fixes issue 607 from webm@googlecode.

Change-Id: I85635e6ca236b90c3dcfc40d449215c7b9caa806

11 years agoFixed potential overflows
Yaowu Xu [Thu, 29 Aug 2013 17:26:52 +0000 (10:26 -0700)]
Fixed potential overflows

The two arrays are typically initialized to INT64_MAX, if they are not
filled with valid values before the addition, the values can overflow
and lead to wrong results.

Change-Id: I515de22cf3e8f55af4b74bdb2c8eb821a02d3059

11 years agoImproved mb_lpf_horizontal_edge_w_sse2_8
Scott LaVarnway [Thu, 29 Aug 2013 12:30:17 +0000 (08:30 -0400)]
Improved mb_lpf_horizontal_edge_w_sse2_8

This patch is a reformatted version of optimizations done by
engineers at Intel (Erik/Tamar) who have been providing
performance feedback for VP9.  For the test clips used (720p, 1080p),
up to 1.2% performance improvement was seen.

Change-Id: Ic1a7149098740079d5453b564da6fbfdd0b2f3d2

11 years agoMerge "General code cleanup."
Dmitry Kovalev [Wed, 28 Aug 2013 19:57:49 +0000 (12:57 -0700)]
Merge "General code cleanup."

11 years agoMerge "Removing unnecessary call to vp9_setup_interp_filters."
Dmitry Kovalev [Wed, 28 Aug 2013 19:31:08 +0000 (12:31 -0700)]
Merge "Removing unnecessary call to vp9_setup_interp_filters."

11 years agoGeneral code cleanup.
Dmitry Kovalev [Wed, 28 Aug 2013 19:22:37 +0000 (12:22 -0700)]
General code cleanup.

Switching from mi_{width, height}_log2 and b_{width, height}_log2 to
num_8x8_blocks_{wide, high} and num_4x4_blocks_{wide, high}. Removing
redundant code, adding const.

Change-Id: Iaab2207590fd24d0b76999071778d1395dc5cd5d

11 years agoAdds a speed feature for fast 1-loop forw updates
Deb Mukherjee [Tue, 27 Aug 2013 22:07:50 +0000 (15:07 -0700)]
Adds a speed feature for fast 1-loop forw updates

Incorporates a speed feature for fast forward updates of
coefficients. This feature takes 3 values:
0 - use standard 2-loop version
1 - use a 1-loop version
2 - use a 1-loop version with reduced updates

Results: derfraw300 +0.007% (on speed 0) at feature value = 1
                    -0.160% (on speed 0) at feature value = 2

There is substantial speed up at speeds 2 and above for low
resolution sequences where the entropy updates are a big part
of the overall computations.

Change-Id: Ie96fc50777088a5bd441288bca6111e43d03bcae

11 years agoRenaming txfm_size to tx_size.
Dmitry Kovalev [Wed, 28 Aug 2013 02:47:53 +0000 (19:47 -0700)]
Renaming txfm_size to tx_size.

Change-Id: I752e374867d459960995b24d197301d65ad535e3

11 years agoMerge "Fix buf alignment in sub8x8 comp inter-inter pred"
Jingning Han [Wed, 28 Aug 2013 02:03:12 +0000 (19:03 -0700)]
Merge "Fix buf alignment in sub8x8 comp inter-inter pred"

11 years agoMerge "Adding get_entropy_context function."
Dmitry Kovalev [Wed, 28 Aug 2013 00:02:36 +0000 (17:02 -0700)]
Merge "Adding get_entropy_context function."

11 years agoMerge "Fix winodws warning."
Frank Galligan [Tue, 27 Aug 2013 22:39:58 +0000 (15:39 -0700)]
Merge "Fix winodws warning."

11 years agoFix winodws warning.
Frank Galligan [Tue, 27 Aug 2013 22:19:55 +0000 (15:19 -0700)]
Fix winodws warning.

Const is not needed on the function parameter.

Change-Id: I38c2a7317cb6f42f70bbddfde9a2cd18d65ceb1c

11 years agoAdding get_entropy_context function.
Dmitry Kovalev [Tue, 27 Aug 2013 21:17:53 +0000 (14:17 -0700)]
Adding get_entropy_context function.

Moving common code from encoder and decoder to this function.

Change-Id: I60fa643fb1ddf7ebbff5e83b6c4710137b0195ef

11 years agoAdd neon optimize vp9_short_idct16x16_1_add.
hkuang [Tue, 27 Aug 2013 20:57:32 +0000 (13:57 -0700)]
Add neon optimize vp9_short_idct16x16_1_add.

Change-Id: Ib9354c1d975d03e8081df20d50b6a77dfe2dc7e5

11 years agoMerge "Add neon optimize vp9_short_idct8x8_1_add."
hkuang [Tue, 27 Aug 2013 19:10:07 +0000 (12:10 -0700)]
Merge "Add neon optimize vp9_short_idct8x8_1_add."

11 years agoRenaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the encoder.
Dmitry Kovalev [Tue, 27 Aug 2013 18:05:08 +0000 (11:05 -0700)]
Renaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the encoder.

Change-Id: I62bb07c377f947cb72fac68add7a6b199e42c6b9

11 years agoMerge "Using num_8x8_* lookup tables instead of mi_*_log2."
Dmitry Kovalev [Tue, 27 Aug 2013 17:49:36 +0000 (10:49 -0700)]
Merge "Using num_8x8_* lookup tables instead of mi_*_log2."

11 years agoMerge "Using existing functions instead of raw expressions."
Dmitry Kovalev [Tue, 27 Aug 2013 17:33:34 +0000 (10:33 -0700)]
Merge "Using existing functions instead of raw expressions."

11 years agoMerge "Cleaning up decode_block_intra function."
Dmitry Kovalev [Tue, 27 Aug 2013 17:17:56 +0000 (10:17 -0700)]
Merge "Cleaning up decode_block_intra function."

11 years agoMerge "Cleaning up model_rd_for_sb_y_tx."
Dmitry Kovalev [Tue, 27 Aug 2013 17:17:10 +0000 (10:17 -0700)]
Merge "Cleaning up model_rd_for_sb_y_tx."

11 years agoMerge "Renaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the common/decoder."
Dmitry Kovalev [Tue, 27 Aug 2013 17:15:21 +0000 (10:15 -0700)]
Merge "Renaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the common/decoder."

11 years agoMerge "Renaming D27 to D207."
Dmitry Kovalev [Tue, 27 Aug 2013 17:03:57 +0000 (10:03 -0700)]
Merge "Renaming D27 to D207."

11 years agoFix buf alignment in sub8x8 comp inter-inter pred
Jingning Han [Mon, 26 Aug 2013 23:52:13 +0000 (16:52 -0700)]
Fix buf alignment in sub8x8 comp inter-inter pred

This commit resolved a mis-alignment issue in compound inter-inter
prediction of sub8x8. This patch follows solution from dkovalev@.

Change-Id: I3cc0cf7e55b84110e0c42ef4b2e6ca7ac3f8f932

11 years agoMerge "fixed the reading too many bytes"
Yaowu Xu [Tue, 27 Aug 2013 16:09:18 +0000 (09:09 -0700)]
Merge "fixed the reading too many bytes"

11 years agofixed the reading too many bytes
Yaowu Xu [Tue, 27 Aug 2013 15:39:20 +0000 (08:39 -0700)]
fixed the reading too many bytes

In subpel_avg_variance functions, code similar to the following

punpkldq m2, [addr]

actually reads 8 bytes. For functions that are supposed to work on
buffers only have less 8 bytes a line, this caused valgrind error
of reading uninitialized memory.

Change-Id: I2a4c079dbdbc747829bd9e2ed85f0018ad2a3a34

11 years agoMerge "Add a test vector that tests color space 444"
Jim Bankoski [Tue, 27 Aug 2013 15:33:12 +0000 (08:33 -0700)]
Merge "Add a test vector that tests color space 444"

11 years agoRemoving unnecessary call to vp9_setup_interp_filters.
Dmitry Kovalev [Tue, 27 Aug 2013 00:25:49 +0000 (17:25 -0700)]
Removing unnecessary call to vp9_setup_interp_filters.

vp9_setup_interp_filters before each inter block decoding, it is not
necessary to call it just before the whole frame decoding.

Change-Id: Id1b0ee62f987474e27eafba0013a4896b492c400

11 years agoAdd neon optimize vp9_short_idct8x8_1_add.
hkuang [Mon, 26 Aug 2013 23:28:57 +0000 (16:28 -0700)]
Add neon optimize vp9_short_idct8x8_1_add.

Change-Id: I0b15d5e3b0eb97abb9ab5ec08e88b61f8723aaf4

11 years agoMerge "Add neon optimize vp9_short_idct4x4_1_add."
hkuang [Mon, 26 Aug 2013 23:26:38 +0000 (16:26 -0700)]
Merge "Add neon optimize vp9_short_idct4x4_1_add."