]> granicus.if.org Git - libvpx/log
libvpx
11 years agoSimplifying vp9_mvref_common.c.
Dmitry Kovalev [Mon, 12 Aug 2013 22:52:08 +0000 (15:52 -0700)]
Simplifying vp9_mvref_common.c.

Change-Id: I272df2e33fa05310466acf06c179728514dd7494

11 years agoMerge "Entropy context related cleanups."
Dmitry Kovalev [Mon, 12 Aug 2013 22:18:24 +0000 (15:18 -0700)]
Merge "Entropy context related cleanups."

11 years agoMerge "Making scaling code more clear."
Dmitry Kovalev [Mon, 12 Aug 2013 22:17:26 +0000 (15:17 -0700)]
Merge "Making scaling code more clear."

11 years agoRemoving unused convolve_avg_c function + cleanup.
Dmitry Kovalev [Mon, 12 Aug 2013 21:28:00 +0000 (14:28 -0700)]
Removing unused convolve_avg_c function + cleanup.

Change-Id: Id2b126c6456627c25e4041a82e304d0151d951ba

11 years agoMaking scaling code more clear.
Dmitry Kovalev [Mon, 12 Aug 2013 20:30:26 +0000 (13:30 -0700)]
Making scaling code more clear.

Reusing existing functions, using constants instead of magic numbers.

Change-Id: Idc689ffba52c9a8b203fcf26bd67110ecb5635f9

11 years agoFix a compile failure in vp9_get_compressed_data
Jingning Han [Mon, 12 Aug 2013 18:41:09 +0000 (11:41 -0700)]
Fix a compile failure in vp9_get_compressed_data

The lf struct is now with VP9_COMMON, instead of MACROBLOCKD.

Change-Id: Idfdd4f91f78f486078a138322d58bb61e93e1bc9

11 years agoEntropy context related cleanups.
Dmitry Kovalev [Mon, 12 Aug 2013 18:24:24 +0000 (11:24 -0700)]
Entropy context related cleanups.

Adding set_skip_context() function used from both encoder and decoder.

Change-Id: Ia22cfad3211a00a63eb294f64f857b78f4aa9b85

11 years agoMerge "Removing redundant code and function arguments."
Dmitry Kovalev [Sun, 11 Aug 2013 19:20:58 +0000 (12:20 -0700)]
Merge "Removing redundant code and function arguments."

11 years agoRenaming BLOCK_SIZE_TYPES constant to BLOCK_SIZES.
Dmitry Kovalev [Sat, 10 Aug 2013 00:47:32 +0000 (17:47 -0700)]
Renaming BLOCK_SIZE_TYPES constant to BLOCK_SIZES.

There will be another change set to rename BLOCK_SIZE_TYPE enum to
BLOCK_SIZE.

Change-Id: I8d1dfc873d6186fa5e554262f5169e929978085e

11 years agoRemoving redundant code and function arguments.
Dmitry Kovalev [Sat, 10 Aug 2013 00:24:40 +0000 (17:24 -0700)]
Removing redundant code and function arguments.

Change-Id: Ia5cdda0f755befcd1e64397452c42cb7031ca574

11 years agoMerge "Inlining 16 as a stride for BLOCK_OFFSET macro."
Dmitry Kovalev [Sat, 10 Aug 2013 00:22:46 +0000 (17:22 -0700)]
Merge "Inlining 16 as a stride for BLOCK_OFFSET macro."

11 years agoMerge "vp9_rd_pick_inter_mode_sb: fix uninitialized value"
James Zern [Sat, 10 Aug 2013 00:13:32 +0000 (17:13 -0700)]
Merge "vp9_rd_pick_inter_mode_sb: fix uninitialized value"

11 years agoInlining 16 as a stride for BLOCK_OFFSET macro.
Dmitry Kovalev [Fri, 9 Aug 2013 23:40:05 +0000 (16:40 -0700)]
Inlining 16 as a stride for BLOCK_OFFSET macro.

Change-Id: I7f23d174eb089e5500f268a10db09648634c1b82

11 years agovp9_rd_pick_inter_mode_sb: fix uninitialized value
James Zern [Fri, 9 Aug 2013 23:15:08 +0000 (16:15 -0700)]
vp9_rd_pick_inter_mode_sb: fix uninitialized value

'skippable' can remain unset and negatively affect later decisions

address one aspect of issue #599

Change-Id: Iffdf0ac2e49ac481c27dc27c87fa546d4167bb28

11 years agoMerge "Using MV struct instead of int[2] array."
Dmitry Kovalev [Fri, 9 Aug 2013 22:33:08 +0000 (15:33 -0700)]
Merge "Using MV struct instead of int[2] array."

11 years agoMerge "Removing plane_block_{width, height}_log2by4 functions."
Dmitry Kovalev [Fri, 9 Aug 2013 22:26:51 +0000 (15:26 -0700)]
Merge "Removing plane_block_{width, height}_log2by4 functions."

11 years agoMerge "Moving loopfilter struct to VP9_COMMON."
Dmitry Kovalev [Fri, 9 Aug 2013 22:23:00 +0000 (15:23 -0700)]
Merge "Moving loopfilter struct to VP9_COMMON."

11 years agoMoving loopfilter struct to VP9_COMMON.
Dmitry Kovalev [Fri, 9 Aug 2013 21:41:51 +0000 (14:41 -0700)]
Moving loopfilter struct to VP9_COMMON.

Loop filter configuration doesn't belong to macroblock, so moving it from
MACROBLOCKD to VP9_COMMON. Also moving the declaration of loopfilter struct
from vp9_blockd.h to vp9_loopfilter.h.

Change-Id: I4b3e34be9623b47cda35f9b1f9951f8c5b1d5d28

11 years agoMoving scale_factors and related code to separate files.
Dmitry Kovalev [Fri, 9 Aug 2013 21:07:09 +0000 (14:07 -0700)]
Moving scale_factors and related code to separate files.

Change-Id: I531829e5aee2a4a7a112d528ecccbddf052d0e74

11 years agoMerge "Bug fix: call set_offsets before rd_auto_partition_range"
Scott LaVarnway [Fri, 9 Aug 2013 19:30:52 +0000 (12:30 -0700)]
Merge "Bug fix: call set_offsets before rd_auto_partition_range"

11 years agoMerge "Using buf_2d struct instead of separate buffer and stride vars."
Dmitry Kovalev [Fri, 9 Aug 2013 18:50:58 +0000 (11:50 -0700)]
Merge "Using buf_2d struct instead of separate buffer and stride vars."

11 years agoBug fix: call set_offsets before rd_auto_partition_range
Scott LaVarnway [Fri, 9 Aug 2013 18:09:49 +0000 (14:09 -0400)]
Bug fix: call set_offsets before rd_auto_partition_range

The set_offsets call is necessary inorder to set the
mode_info_context ptr correctly.

Change-Id: I644910cc5bacc50ee9cd78458843274ad8ee636d

11 years agoMerge "Correct bug in loopfilter initialization"
Adrian Grange [Fri, 9 Aug 2013 16:51:58 +0000 (09:51 -0700)]
Merge "Correct bug in loopfilter initialization"

11 years agoCorrect bug in loopfilter initialization
Adrian Grange [Fri, 9 Aug 2013 16:21:15 +0000 (09:21 -0700)]
Correct bug in loopfilter initialization

The memset sets 16 bytes rather than the correct size of the
final array dimension (MAX_MODE_LF_DELTAS).

(In response to bug posted by Manjit Hota to codec-devel
and webm-discuss lists)

Change-Id: I8980f5aa71ddc9d7ef57c5b4700bc28ddf8651c7

11 years agoAdded lpf level picking using partial frame
Yaowu Xu [Wed, 7 Aug 2013 19:29:45 +0000 (12:29 -0700)]
Added lpf level picking using partial frame

Change-Id: I599ab1bd22b5f3f10d5962c609952abdef8ff67a

11 years agorenamed vp8_yv12_copy_y to vpx_yv12_copy_y
Yaowu Xu [Wed, 7 Aug 2013 17:54:20 +0000 (10:54 -0700)]
renamed vp8_yv12_copy_y to vpx_yv12_copy_y

Becuase the routine is used by both vp8 and vp9

Change-Id: I2d35b287b5bc2394865d931a27da61f4ce7edeeb

11 years agoadded a speed feature on lpf level picking
Yaowu Xu [Tue, 6 Aug 2013 22:46:26 +0000 (15:46 -0700)]
added a speed feature on lpf level picking

Change-Id: Id578f8afdeab3702fc8386969f2d832d8f1b5420

11 years agoMerge "fix unit test failure on win32 vs2008 build"
Yaowu Xu [Fri, 9 Aug 2013 14:19:59 +0000 (07:19 -0700)]
Merge "fix unit test failure on win32 vs2008 build"

11 years agoUsing buf_2d struct instead of separate buffer and stride vars.
Dmitry Kovalev [Fri, 9 Aug 2013 04:25:48 +0000 (21:25 -0700)]
Using buf_2d struct instead of separate buffer and stride vars.

Change-Id: Id5cc3566cc16d1e3030ddb4d1c58459320321dca

11 years agoGeneral code cleanup.
Dmitry Kovalev [Thu, 8 Aug 2013 21:52:39 +0000 (14:52 -0700)]
General code cleanup.

Removing redundant parenthesis and curly braces. Combining declarations
with initializations. Adding useful intermediate variables instead of
recalculating expressions every time.

Change-Id: I00106f404afd60bfc189905b0fded881684f941a

11 years agofix unit test failure on win32 vs2008 build
Yaowu Xu [Fri, 9 Aug 2013 01:25:03 +0000 (18:25 -0700)]
fix unit test failure on win32 vs2008 build

The mix use of double type and simd code caused invalid values stored
in double variables, further caused unit tests to fail. The failures
were only observed on x86-win32-vs9 build with vs2008.

Change-Id: If0131754a3bf217a5ace303b7963e8f5162c34b5

11 years agoMerge "Cleanup inside vp9_reconinter.c."
Dmitry Kovalev [Thu, 8 Aug 2013 21:59:38 +0000 (14:59 -0700)]
Merge "Cleanup inside vp9_reconinter.c."

11 years agoMerge "Adds a new subpel motion function"
Deb Mukherjee [Thu, 8 Aug 2013 19:26:55 +0000 (12:26 -0700)]
Merge "Adds a new subpel motion function"

11 years agoMerge "Removing unneeded intermediate entropy_nodes_adapt var."
Dmitry Kovalev [Thu, 8 Aug 2013 19:16:57 +0000 (12:16 -0700)]
Merge "Removing unneeded intermediate entropy_nodes_adapt var."

11 years agoUsing MV struct instead of int[2] array.
Dmitry Kovalev [Thu, 8 Aug 2013 19:01:56 +0000 (12:01 -0700)]
Using MV struct instead of int[2] array.

Change-Id: Iab951c555037e36b154f319f351c5e67f9abb931

11 years agoRemoving unneeded intermediate entropy_nodes_adapt var.
Dmitry Kovalev [Thu, 8 Aug 2013 18:52:02 +0000 (11:52 -0700)]
Removing unneeded intermediate entropy_nodes_adapt var.

Change-Id: I541a178d997b4541e0e2d4d5b854e2ed6b113c3a

11 years agoAdds a new subpel motion function
Deb Mukherjee [Thu, 8 Aug 2013 00:01:43 +0000 (17:01 -0700)]
Adds a new subpel motion function

Adds a new subpel motion estimation function that uses a 2-level
tree-structured decision tree to eliminate redundant computations.
It searches fewer points than iterative search (which can search
the same point multiple times) but has the same quality roughly.

This is made the default setting at speeds 0 and 1, while at
speed 2 and above only a 1-level search is used.

Also includes various cleanups for consistency and redundancy removal.

Results:
derf: +0.012% psnr
stdhd: +0.09% psnr
Speedup of about 2-3%

Change-Id: Iedde4866f5475586dea0f0ba4cb7428fba24eee9

11 years agoMoved fast motion search level decision to function
Adrian Grange [Sat, 3 Aug 2013 00:19:29 +0000 (17:19 -0700)]
Moved fast motion search level decision to function

Moving this block of code into a function makes the
code easier to read and change.

Change-Id: If4ede570cce1eab1982b188c4d3e4fd3d4db236e

11 years agoSimplify & fix potential bug in rd_pick_partition
Adrian Grange [Thu, 1 Aug 2013 21:57:46 +0000 (14:57 -0700)]
Simplify & fix potential bug in rd_pick_partition

Different partitionings were not being evaluated against
best_rd and there were unnecessary calls to RDCOST. This
could have resulted in a non-optimal partioning being
selected.

I simplified the variables used to track the rate,
distortion and RD values throughout the function.

Change-Id: Ifa7085ee80d824e86791432a5bc6d8fea5a3e313

11 years agoMerge "Use low precision 32x32fdct for encodemb in speed1"
Jingning Han [Thu, 8 Aug 2013 02:05:14 +0000 (19:05 -0700)]
Merge "Use low precision 32x32fdct for encodemb in speed1"

11 years agoRemoving plane_block_{width, height}_log2by4 functions.
Dmitry Kovalev [Thu, 8 Aug 2013 00:06:33 +0000 (17:06 -0700)]
Removing plane_block_{width, height}_log2by4 functions.

Change-Id: I040b82b8e32aee272d10cbb021c7ba1c76343d7a

11 years agoCleanup inside vp9_reconinter.c.
Dmitry Kovalev [Thu, 8 Aug 2013 00:02:28 +0000 (17:02 -0700)]
Cleanup inside vp9_reconinter.c.

Using block width and block height instead of their logarithms. Using
SUBPEL_BITS and SUBPEL_SHIFTS constants instead of magic numbers.

Change-Id: I4e10e93c907c8a5e1cb27dfe74d1fcdcc4995448

11 years agoMerge "Using only one scale function in scale_factors struct."
Dmitry Kovalev [Wed, 7 Aug 2013 23:32:09 +0000 (16:32 -0700)]
Merge "Using only one scale function in scale_factors struct."

11 years agoMerge "Adding ss_size_lookup table."
Dmitry Kovalev [Wed, 7 Aug 2013 23:08:24 +0000 (16:08 -0700)]
Merge "Adding ss_size_lookup table."

11 years agoUse low precision 32x32fdct for encodemb in speed1
Jingning Han [Wed, 7 Aug 2013 22:22:51 +0000 (15:22 -0700)]
Use low precision 32x32fdct for encodemb in speed1

The low precision 32x32 fdct has all the intermediate steps within
16-bit depth, hence allowing faster SSE2 implementation, at the
expense of larger round-trip error. It was used in the rate-distortion
optimization search loop only.

Using the low precision version, in replace of the high precision one,
affects the compression performance by about 0.7% (derf, stdhd) at
speed 0. For speed 1, it makes derf set down by only 0.017%.

Change-Id: I4e7d18fac5bea5317b91c8e7dabae143bc6b5c8b

11 years agoAdding ss_size_lookup table.
Dmitry Kovalev [Wed, 7 Aug 2013 22:33:17 +0000 (15:33 -0700)]
Adding ss_size_lookup table.

Removing the old one bsize_from_dim_lookup. Now we have a way to determine
block size for plane using its subsampling values (ss_size_lookup). And
then we can find the number of pixels in the block (num_pels_log2_lookup).

Change-Id: I6fc981da2ae093de81741d3d78eaefed11015db9

11 years agoMerge "Removing NMS_STATS defines."
Dmitry Kovalev [Wed, 7 Aug 2013 22:28:30 +0000 (15:28 -0700)]
Merge "Removing NMS_STATS defines."

11 years agoNeon version of vp9_short_idct4x4_add.
Christian Duvivier [Mon, 5 Aug 2013 00:37:05 +0000 (17:37 -0700)]
Neon version of vp9_short_idct4x4_add.

Change-Id: Idec4cae0cb9b3a29835fd2750d354c1393d47aa4

11 years agoMerge "Clean ups of the subpel search functions"
Deb Mukherjee [Wed, 7 Aug 2013 00:28:48 +0000 (17:28 -0700)]
Merge "Clean ups of the subpel search functions"

11 years agoClean ups of the subpel search functions
Deb Mukherjee [Tue, 6 Aug 2013 22:53:35 +0000 (15:53 -0700)]
Clean ups of the subpel search functions

Removes some unused code and speed features, and organizes the
interfaces for fractional mv step functions for use in new speed
features to come.

In the process a new speed feature - number of iterations per
step during the subpel search - is exposed.

No change when this parameter is set as the original value of 3.

Results:
subpel_iters_per_step = 3: baseline
subpel_iters_per_step = 2: psnr -0.067%, 1% speedup
subpel_iters_per_step = 1: psnr -0.331%, 3-4% speedup

Change-Id: I2eba8a21f6461be8caf56af04a5337257a5693a8

11 years agoMerge "Motion vector code cleanup."
Dmitry Kovalev [Tue, 6 Aug 2013 23:00:01 +0000 (16:00 -0700)]
Merge "Motion vector code cleanup."

11 years agoUsing only one scale function in scale_factors struct.
Dmitry Kovalev [Tue, 6 Aug 2013 22:43:56 +0000 (15:43 -0700)]
Using only one scale function in scale_factors struct.

Functions scale_mv_q4 and scale_mv_q3_to_q4 were almost identical except
q3->q4 conversion in scale_mv_q3_to_q4. Now q3->q4 conversion happens
directly in vp9_build_inter_predictor.

Also adding useful constants: SUBPEL_BITS and SUBPEL_MASK.

Change-Id: Ia0a6ad2ac07c45fdf95a5139ece6286c035e9639

11 years agoMerge "Place holder for high-precision 32x32 fdct"
Jingning Han [Tue, 6 Aug 2013 21:47:30 +0000 (14:47 -0700)]
Merge "Place holder for high-precision 32x32 fdct"

11 years agovariance x86inc guards
Jim Bankoski [Tue, 6 Aug 2013 15:25:10 +0000 (08:25 -0700)]
variance x86inc guards

also fixed bug in sad calcs

Change-Id: I6571fcbe37556c16ae32be66dc0fd879852aac1d

11 years agosse3 intrapred x86inc protected
Jim Bankoski [Tue, 6 Aug 2013 14:44:56 +0000 (07:44 -0700)]
sse3 intrapred x86inc protected

Change-Id: I4a3c83119cdf8a205920034c8019d855d5504605

11 years agoMerge "Flexible support for various pattern searches"
Deb Mukherjee [Tue, 6 Aug 2013 21:03:27 +0000 (14:03 -0700)]
Merge "Flexible support for various pattern searches"

11 years agosad + miscellaneous updates
Jim Bankoski [Tue, 6 Aug 2013 14:31:54 +0000 (07:31 -0700)]
sad + miscellaneous updates

Enable use_x86inc as a commandline option.  Fix Bug with sse2 when
x86inc is disabled. Adds Sad asm protection to x86inc protection

Change-Id: Iee0f9dd235ea10e8ace512eb362ba9bebe8c9df6

11 years agoMerge "Inlining vp9_get_pred_probs_switchable_interp function."
Dmitry Kovalev [Tue, 6 Aug 2013 18:57:45 +0000 (11:57 -0700)]
Merge "Inlining vp9_get_pred_probs_switchable_interp function."

11 years agoFlexible support for various pattern searches
Deb Mukherjee [Mon, 22 Jul 2013 21:47:57 +0000 (14:47 -0700)]
Flexible support for various pattern searches

Adds a few pattern searches to achieve various tradeoffs
between motion estimation complexity and performance.
The search framework is unified across these searches so that a
common pattern search function is used for all. Besides it will
be easier to experiment with various patterns or combinations
thereof at different scales in the future.

The new pattern search is multi-scale and is capable of using
different patterns at different scales.

The new hex search uses 8 points at the smallest scale
and 6 points at other scales.
Two other pattern searches - big-diamond and square are
also added. Big diamond uses 4 points at the smallest scale and
8 points in diamond shape at the larger scales.
Square is very similar conceptually to the default n-step search
but is somewhat faster since it keeps only one survivor across
all scales.

Psnr/speed-up results on derf300:

hex: -1.6% psnr%, 6-8% speed-up
big-diamond: -0.96% psnr, 4-5% speedup
square: -0.93% psnr, 4-5% speedup

Change-Id: I02a7ef5193f762601e0994e2c99399a3535a43d2

11 years agoPlace holder for high-precision 32x32 fdct
Jingning Han [Tue, 6 Aug 2013 18:10:12 +0000 (11:10 -0700)]
Place holder for high-precision 32x32 fdct

Resolve compile warnings on re-define FDCT32x32_2D template.

Change-Id: Idb3a54ef8d2710ce7245b726379a0e5c875f5cad

11 years agoInlining vp9_get_pred_probs_switchable_interp function.
Dmitry Kovalev [Tue, 6 Aug 2013 18:04:31 +0000 (11:04 -0700)]
Inlining vp9_get_pred_probs_switchable_interp function.

There was no benefit having this function. For example, inside
read_switchable_filter_type switchable filter context was calculated twice.

Change-Id: I79cd5bf95cbc0f6d8bf91a2e32289e01b18dcff1

11 years agoMerge "Move fdct32x32 SSE2 implementation in separate file."
Jingning Han [Tue, 6 Aug 2013 17:46:41 +0000 (10:46 -0700)]
Merge "Move fdct32x32 SSE2 implementation in separate file."

11 years agoMerge "intrapred x86inc guards"
Jim Bankoski [Tue, 6 Aug 2013 17:39:19 +0000 (10:39 -0700)]
Merge "intrapred x86inc guards"

11 years agoMotion vector code cleanup.
Dmitry Kovalev [Mon, 5 Aug 2013 23:27:51 +0000 (16:27 -0700)]
Motion vector code cleanup.

Converting arguments of two functions (clamp_mv_ref, lower_mv_precision)
from int_mv* to MV*. Rewriting is_inside function to make it much shorter.

Change-Id: Ie4c4cf3eccd46707c7df099ec21fb1b61c72fc7a

11 years agoMerge "Finally removing all old block size constants."
Dmitry Kovalev [Tue, 6 Aug 2013 17:30:37 +0000 (10:30 -0700)]
Merge "Finally removing all old block size constants."

11 years agoMerge "Changing the order switchable filter enum constants."
Dmitry Kovalev [Tue, 6 Aug 2013 17:30:26 +0000 (10:30 -0700)]
Merge "Changing the order switchable filter enum constants."

11 years agoMerge "Removing unused functions."
Dmitry Kovalev [Tue, 6 Aug 2013 17:29:57 +0000 (10:29 -0700)]
Merge "Removing unused functions."

11 years agoMerge "Add variance based mode/skipping"
Deb Mukherjee [Tue, 6 Aug 2013 17:19:15 +0000 (10:19 -0700)]
Merge "Add variance based mode/skipping"

11 years agoMove fdct32x32 SSE2 implementation in separate file.
Christian Duvivier [Mon, 5 Aug 2013 22:22:13 +0000 (15:22 -0700)]
Move fdct32x32 SSE2 implementation in separate file.

This is in preparation for the SSE2 version of the high-precision
32x32 forward DCT which will share a lot of code with the existing
low precision version used for rate-distortion search.

Change-Id: I7084b6bdfb480b1fabb8493fb14e3f7fcc7888c0

11 years agointrapred x86inc guards
Jim Bankoski [Tue, 6 Aug 2013 16:39:30 +0000 (09:39 -0700)]
intrapred x86inc guards

Change-Id: If0399d8e11f4ebe75a5c91abb8d6a52a7709065b

11 years agoblock error / x86inc mods
Jim Bankoski [Tue, 6 Aug 2013 00:27:30 +0000 (17:27 -0700)]
block error / x86inc mods

Change-Id: Icb607745634e10b9bac5019d06661ece09fcdb40

11 years agoreworked config for use_x86_inc
Jim Bankoski [Tue, 6 Aug 2013 00:28:52 +0000 (17:28 -0700)]
reworked config for use_x86_inc

Support enabling it or disabling it.  Moved read out to configure.sh
so that its done once instead of in make and in config.

Change-Id: I73a9190cf31de9f03e8a577f478fa522f8c01c8b

11 years agoMerge changes I082959ab,Ib6932640
James Zern [Mon, 5 Aug 2013 23:07:09 +0000 (16:07 -0700)]
Merge changes I082959ab,Ib6932640

* changes:
  vp9/decoder: threaded row-based loop filter
  vp9/decoder: add thread worker

11 years agoFinally removing all old block size constants.
Dmitry Kovalev [Mon, 5 Aug 2013 22:23:49 +0000 (15:23 -0700)]
Finally removing all old block size constants.

Change-Id: I3aae21e88b876d53ecc955260479980ffe04ad8d

11 years agofixed script problem with config_force_x86_inc
Jim Bankoski [Mon, 5 Aug 2013 21:48:20 +0000 (14:48 -0700)]
fixed script problem with config_force_x86_inc

Change-Id: I226e5094d216b09dc47fa5511a66e2d314608000

11 years agoMerge "Begin to restrict x86inc.asm usage"
Jim Bankoski [Mon, 5 Aug 2013 21:17:49 +0000 (14:17 -0700)]
Merge "Begin to restrict x86inc.asm usage"

11 years agoAdd variance based mode/skipping
Deb Mukherjee [Wed, 31 Jul 2013 16:33:58 +0000 (09:33 -0700)]
Add variance based mode/skipping

Adds a speed feature to skip all intra modes other than
DC_PRED if the source variance is small. This feature is
made part of speed 1 and up.

Results on derf300: psnr -0.07%, speedup about 1-2%

Also uses the source variance to fine-tune the early
termination criteria when FLAG_EARLY_TERMINATE is on.
This feature is made part of speed 2 and up.

Results on derf300: psnr -0.52%, speedup about 5-7%

Change-Id: I59e38aa836557cfa5405ae706fc64815cbfe4232

11 years agoMerge "cleanups after bw bh code"
Jim Bankoski [Mon, 5 Aug 2013 21:02:02 +0000 (14:02 -0700)]
Merge "cleanups after bw bh code"

11 years agovp9/decoder: threaded row-based loop filter
James Zern [Wed, 31 Jul 2013 23:15:10 +0000 (16:15 -0700)]
vp9/decoder: threaded row-based loop filter

Currently the only threaded option for vp9 decode. Enabled when the
decoder config thread count is > 1.

Change-Id: I082959abac9e31aa4a38ed9fd68b94680e57f4df

11 years agovp9/decoder: add thread worker
James Zern [Wed, 31 Jul 2013 05:46:58 +0000 (22:46 -0700)]
vp9/decoder: add thread worker

vp9/decoder/vp9_thread.[hc]
Original source:
 http://git.chromium.org/webm/libwebp.git
 100644 blob b1615d0fb8d311666b2fa4561076c62d72c2e3ff  src/utils/thread.c
 100644 blob 13a61a4c84194c3374080cbf03d881d3cd6af40d  src/utils/thread.h

Local modifications:
 - s/WebP/VP9/g
 - camelcase functions -> lower with _'s

Change-Id: Ib6932640ee34f8b4782c6fbd15864a59d5d4c5fe

11 years agoChanging the order switchable filter enum constants.
Dmitry Kovalev [Mon, 5 Aug 2013 19:26:15 +0000 (12:26 -0700)]
Changing the order switchable filter enum constants.

This changeset allows to remove vp9_switchable_interp and
vp9_switchable_interp_map arrays and make code much clear. Actually we
still have to use these mapping but only inside read_interp_filter_type and
write_interp_filter_type functions.

Change-Id: I4026c6f8c4acefba6c81421b7bacbaa52cc45f50

11 years agocleanups after bw bh code
Jim Bankoski [Mon, 5 Aug 2013 19:15:52 +0000 (12:15 -0700)]
cleanups after bw bh code

Cons bw/bh parms that should have been const. Additional formatting.

Change-Id: Icd36a5c9dc17dadd7284315ac0d6fef1a565ca16

11 years agoUpdate README
Paweł Hajdan [Fri, 2 Aug 2013 03:08:42 +0000 (20:08 -0700)]
Update README

- new date
- add VP9 to the title
- update list of available targets

Change-Id: I56263336db393020bac5da8e42fbac3a276ffb1f

11 years agoBegin to restrict x86inc.asm usage
Jim Bankoski [Mon, 5 Aug 2013 19:07:30 +0000 (12:07 -0700)]
Begin to restrict x86inc.asm usage

Chromium does not support 32bit builds for Mac which use x86inc.asm.
Make the files which include it work if 64bit or not PIC enabled
starting with vp9_copy_sse2.asm

Consolidate these targets in vp9_rtcd_defs.sh

Change-Id: If18f0b957a611efd085a3ee7d245cf1eb91e8248

11 years agoReplacing long block size enum values with shorter ones (2).
Dmitry Kovalev [Fri, 2 Aug 2013 18:45:21 +0000 (11:45 -0700)]
Replacing long block size enum values with shorter ones (2).

Change-Id: I428c4d42212b757112e3acfe5b81314cfbb5fd6b

11 years agoMerge "Cleaning up vp9_build_inter_predictor function."
Dmitry Kovalev [Mon, 5 Aug 2013 08:52:11 +0000 (01:52 -0700)]
Merge "Cleaning up vp9_build_inter_predictor function."

11 years agoMerge "Replacing "txfm" with "tx" in identifiers."
Dmitry Kovalev [Sun, 4 Aug 2013 09:52:22 +0000 (02:52 -0700)]
Merge "Replacing "txfm" with "tx" in identifiers."

11 years agoreworked find_mv_ref
Jim Bankoski [Sun, 4 Aug 2013 02:51:56 +0000 (19:51 -0700)]
reworked find_mv_ref

This is an attempt at rewriting vp9_find_mv_refs_idx.   I believe that it gains
about 1-2% decode speed

Change-Id: Ia5359c94ce9bb43b32652890e605e9a385485c1b

11 years agoReplacing "txfm" with "tx" in identifiers.
Dmitry Kovalev [Sat, 3 Aug 2013 00:28:23 +0000 (17:28 -0700)]
Replacing "txfm" with "tx" in identifiers.

Consistent names with TX_SIZE, TX_MODE, and TX_MODE.

Change-Id: I79592218bf5a40ace89197a34a06ee7de581ed8d

11 years agoRemoving NMS_STATS defines.
Dmitry Kovalev [Sat, 3 Aug 2013 00:10:15 +0000 (17:10 -0700)]
Removing NMS_STATS defines.

Change-Id: Iabab0e59042a33456df1d449c0d0f01debc00c7c

11 years agoMerge "Adding is_inter_block function."
Dmitry Kovalev [Fri, 2 Aug 2013 23:54:32 +0000 (16:54 -0700)]
Merge "Adding is_inter_block function."

11 years agoCleaning up vp9_build_inter_predictor function.
Dmitry Kovalev [Fri, 2 Aug 2013 23:53:18 +0000 (16:53 -0700)]
Cleaning up vp9_build_inter_predictor function.

Change-Id: I94f6b4272b95ac101de6d10f048116ba065788b0

11 years agoRemoving unused functions.
Dmitry Kovalev [Fri, 2 Aug 2013 23:41:09 +0000 (16:41 -0700)]
Removing unused functions.

Removed functions:
  model_rd_for_sb_y,
  block_error_sby,
  get_sb_variance

Change-Id: Iec458df180caf6f8eac3605773841a4121dd3a8f

11 years agoMerge "Changing function arg type from int_mv* to MV*."
Dmitry Kovalev [Fri, 2 Aug 2013 23:30:06 +0000 (16:30 -0700)]
Merge "Changing function arg type from int_mv* to MV*."

11 years agoMerge "Cleanups around allow_high_precision_mv flag."
Dmitry Kovalev [Fri, 2 Aug 2013 23:27:05 +0000 (16:27 -0700)]
Merge "Cleanups around allow_high_precision_mv flag."

11 years agoAdding is_inter_block function.
Dmitry Kovalev [Fri, 2 Aug 2013 23:25:33 +0000 (16:25 -0700)]
Adding is_inter_block function.

Using it instead of long unclear verbose check
"mbmi->ref_frame[0] != INTRA_FRAME".

Change-Id: I9c7b4b3797942fa962bf3ba7460fff3084beabe9

11 years agoMerge "Cleaning up set_contexts_on_border function."
Dmitry Kovalev [Fri, 2 Aug 2013 23:22:50 +0000 (16:22 -0700)]
Merge "Cleaning up set_contexts_on_border function."

11 years agoMerge "Add more checking to using_small_partition_info"
Yunqing Wang [Fri, 2 Aug 2013 22:55:09 +0000 (15:55 -0700)]
Merge "Add more checking to using_small_partition_info"

11 years agoCleaning up set_contexts_on_border function.
Dmitry Kovalev [Fri, 2 Aug 2013 22:52:26 +0000 (15:52 -0700)]
Cleaning up set_contexts_on_border function.

Change-Id: I8f21c18b29f54b277fb1c167f278f109d9f3b996

11 years agoChanging function arg type from int_mv* to MV*.
Dmitry Kovalev [Fri, 2 Aug 2013 22:26:32 +0000 (15:26 -0700)]
Changing function arg type from int_mv* to MV*.

Change-Id: Ic878d31df2ce783a2c9a8c4bc9ed301ec8ffe25e