platform/upstream/libvpx.git
10 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

10 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"

10 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"

10 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"

10 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

10 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"

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

10 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

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

10 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

10 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

10 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"

10 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

10 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"

10 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

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

10 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

10 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

10 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

10 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."

10 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

10 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

10 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

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

10 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."

10 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

10 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

10 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

10 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"

10 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."

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

10 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

10 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

10 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

10 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."

10 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

10 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."

10 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."

10 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."

10 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."

10 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."

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

10 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

10 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"

10 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

10 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"

10 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

10 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

10 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."

10 years agoCleaning up model_rd_for_sb_y_tx.
Dmitry Kovalev [Mon, 26 Aug 2013 23:18:28 +0000 (16:18 -0700)]
Cleaning up model_rd_for_sb_y_tx.

Removing references to plane_block_width and plane_block_height (we are
going to delete the latter ones).

Change-Id: I7982da4d373aebb54d2209dc8886f6192df4d287

10 years agoAdd neon optimize vp9_short_idct4x4_1_add.
hkuang [Mon, 26 Aug 2013 19:39:12 +0000 (12:39 -0700)]
Add neon optimize vp9_short_idct4x4_1_add.

Change-Id: I6ecb5c4a1a472feb8e84e9f3352b536d5e28a4a5

10 years agoMerge "Fix Chroma plane md5 check"
Jim Bankoski [Mon, 26 Aug 2013 22:27:14 +0000 (15:27 -0700)]
Merge "Fix Chroma plane md5 check"

10 years agoAdd a test vector that tests color space 444
Jim Bankoski [Mon, 26 Aug 2013 22:24:35 +0000 (15:24 -0700)]
Add a test vector that tests color space 444

This adds a test vector for 444 color space.

Change-Id: I1e2ac3883211989a062cfafc0e58151b14d294b8

10 years agoCleaning up decode_block_intra function.
Dmitry Kovalev [Mon, 26 Aug 2013 22:24:12 +0000 (15:24 -0700)]
Cleaning up decode_block_intra function.

Change-Id: Ia41ea5d526d15fcbc9b56d74079593cf8b2fdf66

10 years agoFix Chroma plane md5 check
Jim Bankoski [Mon, 26 Aug 2013 21:26:38 +0000 (14:26 -0700)]
Fix Chroma plane md5 check

Chroma plane MD5 calculation was incorrect for 444 and 422
yuv color spaces.

Change-Id: If985396871a2f57db85108a4355172f9793d3007

10 years agoUsing num_8x8_* lookup tables instead of mi_*_log2.
Dmitry Kovalev [Mon, 26 Aug 2013 21:22:54 +0000 (14:22 -0700)]
Using num_8x8_* lookup tables instead of mi_*_log2.

Change-Id: I8a246b3d056c98be614d05a90bc261e2441ffc10

10 years agoMerge "Fix the reading of too many input pixels"
Yaowu Xu [Mon, 26 Aug 2013 21:01:50 +0000 (14:01 -0700)]
Merge "Fix the reading of too many input pixels"

10 years agoMerge "Changes to adaptive inter rd thresholds."
Paul Wilkins [Mon, 26 Aug 2013 19:48:11 +0000 (12:48 -0700)]
Merge "Changes to adaptive inter rd thresholds."

10 years agoFix the reading of too many input pixels
Yaowu Xu [Mon, 26 Aug 2013 16:21:12 +0000 (09:21 -0700)]
Fix the reading of too many input pixels

in VP9_get4x4var_mmx

Change-Id: I4b4a8f45f25ebdfad281f169cc87aba5e2d6f227

10 years agoMerge "Limit Key frame Intra modes checks."
Paul Wilkins [Mon, 26 Aug 2013 19:34:56 +0000 (12:34 -0700)]
Merge "Limit Key frame Intra modes checks."

10 years agoRenaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the common/decoder.
Dmitry Kovalev [Mon, 26 Aug 2013 18:33:16 +0000 (11:33 -0700)]
Renaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the common/decoder.

Adding temporary "typedef BLOCK_SIZE BLOCK_SIZE_TYPE" which will go away
after encoder's patch.

Change-Id: I06ec6a6f079401439843ec981d1496234fd7775c

10 years agoMerge "Temporarily disable SSSE3 quant_32x32"
Jingning Han [Mon, 26 Aug 2013 18:19:53 +0000 (11:19 -0700)]
Merge "Temporarily disable SSSE3 quant_32x32"

10 years agoMerge "Removing redundant calls to clamp_mv2."
Dmitry Kovalev [Mon, 26 Aug 2013 17:48:37 +0000 (10:48 -0700)]
Merge "Removing redundant calls to clamp_mv2."

10 years agoTemporarily disable SSSE3 quant_32x32
Jingning Han [Mon, 26 Aug 2013 17:45:59 +0000 (10:45 -0700)]
Temporarily disable SSSE3 quant_32x32

Make the current head working properly, while working on fixing an
issue in the SSSE3 implementation of 32x32 quantization.

Change-Id: Ic029da3fd7f1f5e58bc641341cbd226ec49a16bc

10 years agoMerge "cosmetics: yv12extend add some const"
James Zern [Sun, 25 Aug 2013 01:13:41 +0000 (18:13 -0700)]
Merge "cosmetics: yv12extend add some const"

10 years agocosmetics: yv12extend add some const
James Zern [Sat, 24 Aug 2013 02:52:33 +0000 (19:52 -0700)]
cosmetics: yv12extend add some const

Change-Id: I87f1ce2ceca80d3869dd72ba862329a98eb3e0c2

10 years agoMerge "cosmetics: strip 'VP9_' from defines in vp9 only code"
James Zern [Sat, 24 Aug 2013 02:59:16 +0000 (19:59 -0700)]
Merge "cosmetics: strip 'VP9_' from defines in vp9 only code"

10 years agoMerge "yv12extend: name variables consistently"
James Zern [Sat, 24 Aug 2013 02:40:03 +0000 (19:40 -0700)]
Merge "yv12extend: name variables consistently"

10 years agocosmetics: strip 'VP9_' from defines in vp9 only code
James Zern [Fri, 23 Aug 2013 01:40:34 +0000 (18:40 -0700)]
cosmetics: strip 'VP9_' from defines in vp9 only code

Change-Id: I481d9bb2fa3ec72b6a83d5f04d545ad8013f295c

10 years agoMerge "vp9: remove unnecessary wait w/threaded loopfilter"
James Zern [Sat, 24 Aug 2013 01:52:10 +0000 (18:52 -0700)]
Merge "vp9: remove unnecessary wait w/threaded loopfilter"

10 years agoyv12extend: name variables consistently
James Zern [Fri, 23 Aug 2013 02:49:24 +0000 (19:49 -0700)]
yv12extend: name variables consistently

- s|source -> src
- dest -> dst
- use verbose names in extend_plane dropping the redundant comments

+ light cosmetics:
- join a few lines / assignments
- drop some unnecessary comments & includes

Change-Id: I6d979a85a0223a0a79a22f79a6d9c7512fd04532

10 years agoRenaming D27 to D207.
Dmitry Kovalev [Sat, 24 Aug 2013 00:33:48 +0000 (17:33 -0700)]
Renaming D27 to D207.

I've already renamed d27_predictor to d207_predictor but forgot about the
corresponding constant.

Change-Id: Id312aa80fc5b5a1ab8a709a33418a029552a6857

10 years agoUsing existing functions instead of raw expressions.
Dmitry Kovalev [Sat, 24 Aug 2013 00:26:53 +0000 (17:26 -0700)]
Using existing functions instead of raw expressions.

Change-Id: Ifa50b04bac1a6ff2abef989073cbf1f37a89eb50

10 years agoMerge "Cleanup in mvref_common.{h, c}."
Dmitry Kovalev [Sat, 24 Aug 2013 00:09:49 +0000 (17:09 -0700)]
Merge "Cleanup in mvref_common.{h, c}."

10 years agoMerge "Fixing display size setting problem."
Dmitry Kovalev [Sat, 24 Aug 2013 00:08:51 +0000 (17:08 -0700)]
Merge "Fixing display size setting problem."

10 years agoLimit mv range to be based on partition size
Yaowu Xu [Fri, 23 Aug 2013 20:29:32 +0000 (13:29 -0700)]
Limit mv range to be based on partition size

Previous change c4048dbd limits the mv search range assuming max block
size of 64x64, this commit change the search range using actual block
size instead.

Change-Id: Ibe07ab02b62bf64bd9f8675d2b997af20a2c7e11

10 years agoRemoving redundant calls to clamp_mv2.
Dmitry Kovalev [Fri, 23 Aug 2013 22:18:35 +0000 (15:18 -0700)]
Removing redundant calls to clamp_mv2.

We could avoid calling clamp_mv2 because it has been already called
inside vp9_find_best_ref_mvs function.

Change-Id: I08edeaf3e11e98c19e67b9711b2523ca5fb1416e

10 years agoMerge "Added border extension"
Yaowu Xu [Fri, 23 Aug 2013 21:43:58 +0000 (14:43 -0700)]
Merge "Added border extension"

10 years agoMerge "Fix bug in convolution functions (filter selection)"
Adrian Grange [Fri, 23 Aug 2013 20:41:47 +0000 (13:41 -0700)]
Merge "Fix bug in convolution functions (filter selection)"

10 years agoMerge "Removing useless calls to setup_{pre, dst}_planes."
Dmitry Kovalev [Fri, 23 Aug 2013 20:37:32 +0000 (13:37 -0700)]
Merge "Removing useless calls to setup_{pre, dst}_planes."

10 years agoFixing display size setting problem.
Dmitry Kovalev [Fri, 23 Aug 2013 20:12:46 +0000 (13:12 -0700)]
Fixing display size setting problem.

Fix of https://code.google.com/p/webm/issues/detail?id=608. We could have
used invalid display size equal to the previous frame size (not to the
current frame size).

Change-Id: I91b576be5032e47084214052a1990dc51213e2f0

10 years agoCleanup in mvref_common.{h, c}.
Dmitry Kovalev [Fri, 23 Aug 2013 19:00:14 +0000 (12:00 -0700)]
Cleanup in mvref_common.{h, c}.

Making code more compact, adding consts, removing redundant arguments,
adding do/while(0) for macros.

Change-Id: Ic9ec0bc58cee0910a5450b7fb8cfbf35fa9d0d16

10 years agoAdded border extension
Yaowu Xu [Thu, 22 Aug 2013 17:37:28 +0000 (10:37 -0700)]
Added border extension

To the source buffer to be encoded as an alt ref frame. This is to fix
the problem of using uninitialized memory in encoder.

See https://code.google.com/p/webm/issues/detail?id=605

Change-Id: I97618a2fc207e08abcf5301b734aa9e3ad695e2c

10 years agoFix bug in convolution functions (filter selection)
Adrian Grange [Thu, 22 Aug 2013 23:02:18 +0000 (16:02 -0700)]
Fix bug in convolution functions (filter selection)

(In response to Issue 604:
 https://code.google.com/p/webm/issues/detail?id=604)

There were bugs in the convolution code for two cases:

1. Where the filter table was assumed to be aligned to a
   256 byte boundary. The offset of the pixel in the
   source buffer was computed incorrectly.

2. Where no such alignment assumption was made. An
   incorrect address for the filter table base was used.

To fix both problems, I now assume that the filter table is
256-byte aligned and modify the pixel offset calculation to
match.

A later patch should remove the restriction that the filter
table is aligned to a 256-byte boundary.

There was also a bug in the ConvolveTest unit test
(convolve_test.cc).

(Bug & initial fix suggestion submitted by Tero Rintaluoma
and Sami Pietilä).

Change-Id: I71985551e62846e55e40de9e7e3959d4805baa82

10 years agoMerge "Checking scale factors on access."
Dmitry Kovalev [Fri, 23 Aug 2013 18:05:17 +0000 (11:05 -0700)]
Merge "Checking scale factors on access."

10 years agoMerge "vpx_scale: correct pixel spelling"
James Zern [Fri, 23 Aug 2013 18:01:27 +0000 (11:01 -0700)]
Merge "vpx_scale: correct pixel spelling"

10 years agoMerge "Optimise idct4x4: rearrange the instructions a bit to improve instruction...
hkuang [Fri, 23 Aug 2013 17:08:43 +0000 (10:08 -0700)]
Merge "Optimise idct4x4: rearrange the instructions a bit to improve instruction scheduling."

10 years agoChanges to adaptive inter rd thresholds.
Paul Wilkins [Fri, 23 Aug 2013 13:00:54 +0000 (14:00 +0100)]
Changes to adaptive inter rd thresholds.

Values now carried over frame to frame.
Change to algorithm for decreasing threshold after
a hit and to max threshold (now based on speed)

Removed some old commented out code relating to
VP8 adaptive thresholds.

The impact of these changes tested on Akiyo (50 frames)
and measured in terms of unit rd hits is as follows:

Speed 0 84.36 -> 84.67
Speed 1 29.48 -> 22.22
Speed 2 11.76 -> 8.21
Speed 3 12.32 -> 7.21

Encode speed impact is broadly in line with these.

Change-Id: I5b886efee3077a11553fa950d796fd6d00c8cb19

10 years agoLimit Key frame Intra modes checks.
Paul Wilkins [Thu, 22 Aug 2013 16:23:02 +0000 (17:23 +0100)]
Limit Key frame Intra modes checks.

Most of the focus so far has been on inter frames.

At high speed settings the key frame is now taking a high %
of the cycles.

This patch puts in some masking to reduce the number
of INTRA modes searched during key frame coding (as already
happens for inter frames) at higher speed settings

TODO: Develop this further with either adaptive rd thresholds
when choosing which intra modes to consider or some other
heuristic.

Impact.
At high speed settings on some clips the key frame was starting
to dominate. In a coding of the first 50 frames of AKIYO at speed
2 limiting the key frame intra modes to DC or TM_PRED resulted in
~30% overall speedup. For Bus the number was lower at ~4-5%.

Change-Id: I7bde68aee04995f9d9beb13a1902143112e341e2

10 years agovpx_scale: correct pixel spelling
James Zern [Fri, 23 Aug 2013 02:39:52 +0000 (19:39 -0700)]
vpx_scale: correct pixel spelling

Change-Id: Idcfab16da37134f943a4314674e2e2fcbff3a0f8

10 years agoMerge "Fix rectangular partition check flag"
Jingning Han [Fri, 23 Aug 2013 01:59:18 +0000 (18:59 -0700)]
Merge "Fix rectangular partition check flag"

10 years agoMerge "vp9_encodeframe.c cleanup."
Dmitry Kovalev [Fri, 23 Aug 2013 01:07:35 +0000 (18:07 -0700)]
Merge "vp9_encodeframe.c cleanup."

10 years agoMerge "vp9/encoder: fix last_frame_seg_map mem leak"
James Zern [Fri, 23 Aug 2013 01:04:03 +0000 (18:04 -0700)]
Merge "vp9/encoder: fix last_frame_seg_map mem leak"

10 years agoMerge "rename LOG2_* defines to *_LOG2"
James Zern [Fri, 23 Aug 2013 01:02:42 +0000 (18:02 -0700)]
Merge "rename LOG2_* defines to *_LOG2"

10 years agoFix rectangular partition check flag
Jingning Han [Fri, 23 Aug 2013 00:15:01 +0000 (17:15 -0700)]
Fix rectangular partition check flag

Put rectangular partition check flag change according to the rd
costs of NONE and SPLIT partition types under the speed feature.

Change-Id: If681e1e078a8d43d86961ea4b748da5cd1b6c331

10 years agoMerge "check_bsize_coverage cleanup."
Dmitry Kovalev [Thu, 22 Aug 2013 23:18:24 +0000 (16:18 -0700)]
Merge "check_bsize_coverage cleanup."

10 years agoMerge "Add neon optimize vp9_short_idct10_16x16_add."
hkuang [Thu, 22 Aug 2013 22:57:28 +0000 (15:57 -0700)]
Merge "Add neon optimize vp9_short_idct10_16x16_add."

10 years agoAdd neon optimize vp9_short_idct10_16x16_add.
hkuang [Wed, 21 Aug 2013 21:19:08 +0000 (14:19 -0700)]
Add neon optimize vp9_short_idct10_16x16_add.

vp9_short_idct10_16x16_add is used to handle the block that only have valid data
at top left 4x4 block. All the other datas are 0. So we could cut many
unnecessary calculations in order to save instructions.

Change-Id: I6e30a3fee1ece5af7f258532416d0bfddd1143f0

10 years agovp9_encodeframe.c cleanup.
Dmitry Kovalev [Thu, 22 Aug 2013 22:50:51 +0000 (15:50 -0700)]
vp9_encodeframe.c cleanup.

Removing unused get_sbuv_perpixel_variance function, using has_second_ref/
is_inter_block functions, organizing includes.

Change-Id: I016de4af12fbbb8b4ece26a70759b2392651b095

10 years agocheck_bsize_coverage cleanup.
Dmitry Kovalev [Thu, 22 Aug 2013 22:45:56 +0000 (15:45 -0700)]
check_bsize_coverage cleanup.

Change-Id: Ib7803857b35c00e317c9deb8630e777e25eb278f