]> granicus.if.org Git - libvpx/log
libvpx
11 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

11 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

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

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

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

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

11 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

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

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

11 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

11 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

11 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

11 years agorename LOG2_* defines to *_LOG2
James Zern [Thu, 22 Aug 2013 21:45:24 +0000 (14:45 -0700)]
rename LOG2_* defines to *_LOG2

gets rid of a mix of styles

Change-Id: I3591d312157bc6f53a25438bf047765c671fd8a8

11 years agoMerge "Adding vp9_is_scaled function."
Dmitry Kovalev [Thu, 22 Aug 2013 21:39:55 +0000 (14:39 -0700)]
Merge "Adding vp9_is_scaled function."

11 years agovp9/encoder: fix last_frame_seg_map mem leak
James Zern [Thu, 22 Aug 2013 21:13:04 +0000 (14:13 -0700)]
vp9/encoder: fix last_frame_seg_map mem leak

remove duplicate allocation from vp9_create_compressor, it was added to
vp9_alloc_frame_buffers in:

d5bec52 Added resizing & initialization of last frame segment map

Change-Id: I996723226a16a62aff8f9a52ac74e0b73cc98fdf

11 years agoAdding vp9_is_scaled function.
Dmitry Kovalev [Thu, 22 Aug 2013 21:04:59 +0000 (14:04 -0700)]
Adding vp9_is_scaled function.

Change-Id: Ieb7077ca3586b9491912027eed450a4f6fd38d30

11 years agoMerge "Refactor rd_pick_partition for parameter control"
Jingning Han [Thu, 22 Aug 2013 20:54:48 +0000 (13:54 -0700)]
Merge "Refactor rd_pick_partition for parameter control"

11 years agoMerge "vp9_peek_si: add bitstream v1 support"
James Zern [Thu, 22 Aug 2013 20:28:00 +0000 (13:28 -0700)]
Merge "vp9_peek_si: add bitstream v1 support"

11 years agoRefactor rd_pick_partition for parameter control
Jingning Han [Tue, 20 Aug 2013 21:34:17 +0000 (14:34 -0700)]
Refactor rd_pick_partition for parameter control

This commit changes the partition search order of superblocks from
{SPLIT, NONE, HORZ, VERT} to {NONE, SPLIT, HORZ, VERT} for
consistency with that of sub8x8 partition search. It enable the use
of early termination in partition search for all block sizes.

For ped_area_1080p 50 frames coded at 4000 kbps, it makes the runtime
goes down from 844305ms -> 818003ms (3% speed-up) at speed 0.

This will further move towards making the in-search partition types
configurable, hence unifying various speed-up approaches.

Some speed 1 and 2 features are turned off during the refactoring
process, including:
disable_split_var_thresh
using_small_partition_info

Stricter constraints are applied to use_square_partition_only for
right/bottom boundary blocks. Will bring back/refine these features
subsequently. At this point, it makes derf set at speed 1 about
0.45% higher in compression performance, and 9% down in run-time.

Change-Id: I3db9f9d1d1a0d6cbe2e50e49bd9eda1cf705f37c

11 years agoFixes on feature disabling split based on variance
Deb Mukherjee [Wed, 21 Aug 2013 23:19:35 +0000 (16:19 -0700)]
Fixes on feature disabling split based on variance

Adds a couple of minor fixes, which may be absorbed in Jingning's
patch. Thanks to Guillaume for pointing these out.
Also adjusts the thresholds for speed 1 and 2 to 16 and 32
respectively, to keep quality drops small.

Results:
--------
derfraw300:  threshold = 16, psnr -0.082%, speedup 2-3%
             threshold = 32, psnr -0.218%, speedup 5-6%
stdhdraw250: threshold = 16, psnr -0.031%, speedup 2-3%
             threshold = 32, psnr -0.273%, speedup 5-6%

Change-Id: I4b11ae8296cca6c2a9f644be7e40de7c423b8330

11 years agoMerge "Initialize mb_skip_coeff before picking modes"
Scott LaVarnway [Thu, 22 Aug 2013 13:26:04 +0000 (06:26 -0700)]
Merge "Initialize mb_skip_coeff before picking modes"

11 years agoInitialize mb_skip_coeff before picking modes
Scott LaVarnway [Thu, 22 Aug 2013 12:51:04 +0000 (08:51 -0400)]
Initialize mb_skip_coeff before picking modes

It appears that the above/left mb_skip_coeff used during
the pick modes, is left over from the previously
encode frame.  This patch initializes the flag to the default
value of zero.

Change-Id: Ida4684cc99611d6e3e82628db35ed717e28ce550

11 years agoMerge "Using has_second_ref function to simplify the code."
Dmitry Kovalev [Thu, 22 Aug 2013 08:39:14 +0000 (01:39 -0700)]
Merge "Using has_second_ref function to simplify the code."

11 years agoMerge "Cleaning up foreach_transformed_block_in_plane."
Dmitry Kovalev [Thu, 22 Aug 2013 08:37:21 +0000 (01:37 -0700)]
Merge "Cleaning up foreach_transformed_block_in_plane."

11 years agoMerge "Cleaning up reset_skip_context function."
Dmitry Kovalev [Thu, 22 Aug 2013 08:36:25 +0000 (01:36 -0700)]
Merge "Cleaning up reset_skip_context function."

11 years agoMerge "Removing unused foreach_predicted_block function."
Dmitry Kovalev [Thu, 22 Aug 2013 08:35:40 +0000 (01:35 -0700)]
Merge "Removing unused foreach_predicted_block function."

11 years agoMerge "Cleaning up optimize_init_b function."
Dmitry Kovalev [Thu, 22 Aug 2013 08:35:27 +0000 (01:35 -0700)]
Merge "Cleaning up optimize_init_b function."

11 years agoMerge "Cleaning up sum_intra_stats function."
Dmitry Kovalev [Thu, 22 Aug 2013 08:34:38 +0000 (01:34 -0700)]
Merge "Cleaning up sum_intra_stats function."

11 years agoMerge "Enable zero coeff check in sub8x8 UV rd loop"
Jingning Han [Thu, 22 Aug 2013 05:07:00 +0000 (22:07 -0700)]
Merge "Enable zero coeff check in sub8x8 UV rd loop"

11 years agoconfigure: fix action expansion
James Zern [Thu, 22 Aug 2013 02:00:08 +0000 (19:00 -0700)]
configure: fix action expansion

enable|disable -> (enable|disable)_feature

Change-Id: I7494913c78ebe8bb532fa6545e0ae53a79ccd388

11 years agoconfigure: rename enable() to enable_feature()
James Zern [Thu, 22 Aug 2013 01:11:45 +0000 (18:11 -0700)]
configure: rename enable() to enable_feature()

+ disable() -> disable_feature() for balance

this avoids shadowing the bash builtin 'enable' allowing the scripts to
be linted with checkbashisms

Change-Id: Ia11cf86c92ec25bd14e69427b0ac0a9a61a5f7a5

11 years agoCleaning up foreach_transformed_block_in_plane.
Dmitry Kovalev [Thu, 22 Aug 2013 00:16:02 +0000 (17:16 -0700)]
Cleaning up foreach_transformed_block_in_plane.

Change-Id: I9f45af3894c57f35cb266c255e2b904295d39c34

11 years agovp9_peek_si: add bitstream v1 support
James Zern [Wed, 21 Aug 2013 23:40:34 +0000 (16:40 -0700)]
vp9_peek_si: add bitstream v1 support

currently protected by CONFIG_NON420 as v1 is still not entirely stable

Change-Id: Id1c5081b04a2c47a842822048b8804be67d23a6d

11 years agoCleaning up optimize_init_b function.
Dmitry Kovalev [Wed, 21 Aug 2013 23:40:16 +0000 (16:40 -0700)]
Cleaning up optimize_init_b function.

Change-Id: Ib2c975e1d96deefb7ac4d6b600c8c5388035d111

11 years agoCleaning up reset_skip_context function.
Dmitry Kovalev [Wed, 21 Aug 2013 23:31:51 +0000 (16:31 -0700)]
Cleaning up reset_skip_context function.

Change-Id: Ib3e72671eb8da6f2e9767a6de292ec7c7cde6bc7

11 years agoCleaning up sum_intra_stats function.
Dmitry Kovalev [Wed, 21 Aug 2013 23:25:02 +0000 (16:25 -0700)]
Cleaning up sum_intra_stats function.

Using size_group_lookup table and better variable names.

Change-Id: I6e67f2ce091845db43ace7d21b7ae31c6f165aec

11 years agoMerge "Adding scale factor check."
Dmitry Kovalev [Wed, 21 Aug 2013 21:11:13 +0000 (14:11 -0700)]
Merge "Adding scale factor check."

11 years agoMerge "Removing PLANE_TYPE argument from cost_coeffs function."
Dmitry Kovalev [Wed, 21 Aug 2013 21:10:05 +0000 (14:10 -0700)]
Merge "Removing PLANE_TYPE argument from cost_coeffs function."

11 years agoMerge "Make "good" quality 2-pass vpxenc encoding default"
Deb Mukherjee [Wed, 21 Aug 2013 20:58:49 +0000 (13:58 -0700)]
Merge "Make "good" quality 2-pass vpxenc encoding default"

11 years agoMerge "vp9 rtcd: remove non-existent sad functions"
James Zern [Wed, 21 Aug 2013 20:55:59 +0000 (13:55 -0700)]
Merge "vp9 rtcd: remove non-existent sad functions"

11 years agoRemoving PLANE_TYPE argument from cost_coeffs function.
Dmitry Kovalev [Wed, 21 Aug 2013 20:02:28 +0000 (13:02 -0700)]
Removing PLANE_TYPE argument from cost_coeffs function.

We can determine plane_type for another function arguments.

Change-Id: I85331877aedb357632ae916a37b5b15f22c0bb1f

11 years agoMake "good" quality 2-pass vpxenc encoding default
Deb Mukherjee [Mon, 19 Aug 2013 21:16:26 +0000 (14:16 -0700)]
Make "good" quality 2-pass vpxenc encoding default

Currently, the best quality mode in VP9 is not very well developed,
and unnecessarily makes the encode too slow. Hence the command line
default is changed to "good" quality. Also, the number of passes
default is changed to 2 passes as well, since 1-pass encoding is
not very efficient in VP9.

Besides, a number of VP9 defaults are set to the currently
recommended settings. With these changes, vpxenc
run with --codec=vp9 --kf-max-dist=9999 --cpu-used=0 should
work about the same as our borg results.
Note when the --cpu-used=0 option is dropped there will be a slight
difference in the output, because of a difference in the cpu-used
value for the first pass. Specifically, the default when unspecified
is to use cpu_used=1 for the first pass and cpu_used=0 for the
second pass. But when specified, both passes will use the cpu-used
value specified.

Note that this also changes the default for VP8 as being "good"
but other options stay unchanged.

Change-Id: Ib23c1a05ae2f36ee076c0e34403efbda518c5066

11 years agoRemoving a lot of duplicated code.
Dmitry Kovalev [Wed, 21 Aug 2013 18:55:04 +0000 (11:55 -0700)]
Removing a lot of duplicated code.

Adding set_contexts contexts function and call it instead of
set_contexts_on_border. Calling txfrm_block_to_raster_xy to get aoff and
loff.

Change-Id: I41897e344afd2cae1f923f4fdbe63daccf6fe80e

11 years agoAdding scale factor check.
Dmitry Kovalev [Wed, 21 Aug 2013 18:24:47 +0000 (11:24 -0700)]
Adding scale factor check.

We support only [1/16, 2] scale factors, enforcing this now.

Change-Id: I0822eb7cea51720df6814e42d3f35ff340963061

11 years agoFix typos and minor stylistic cleanup
Adrian Grange [Tue, 20 Aug 2013 19:55:41 +0000 (12:55 -0700)]
Fix typos and minor stylistic cleanup

Change-Id: I32e43474e8651ef2eb181d24860a8f118cfea7bf

11 years agoMerge "Further correct bug in loopfilter initialization"
Adrian Grange [Wed, 21 Aug 2013 14:17:43 +0000 (07:17 -0700)]
Merge "Further correct bug in loopfilter initialization"

11 years agovp9 rtcd: remove non-existent sad functions
James Zern [Wed, 21 Aug 2013 01:06:58 +0000 (18:06 -0700)]
vp9 rtcd: remove non-existent sad functions

vp9_sad32x3, vp9_sad3x32

+ remove unnecessary sad include from vp9_findnearmv.c

Change-Id: Idef2a89cadc3fec64eff82ba9be60ffff50b3468

11 years agoRemoving unused foreach_predicted_block function.
Dmitry Kovalev [Wed, 21 Aug 2013 00:20:47 +0000 (17:20 -0700)]
Removing unused foreach_predicted_block function.

Moving foreach_predicted_block_in_plane function to vp9_reconinter.c
because there is only one usage.

Change-Id: I9852feae43fc3cf809b817fc541d043bc5496209

11 years agoMerge "Passing plane_bsize to foreach_transformed_block_visitor."
Dmitry Kovalev [Tue, 20 Aug 2013 21:25:01 +0000 (14:25 -0700)]
Merge "Passing plane_bsize to foreach_transformed_block_visitor."

11 years agoUsing has_second_ref function to simplify the code.
Dmitry Kovalev [Tue, 20 Aug 2013 21:09:56 +0000 (14:09 -0700)]
Using has_second_ref function to simplify the code.

Updating implementation of vp9_get_pred_context_single_ref_p2 using
has_second_ref function to make code easier to read.

Change-Id: I5ba642712f59861a48aab974e73aa01640d086fe

11 years agoMerge "Add neon optimize vp9_short_idct10_8x8_add."
hkuang [Tue, 20 Aug 2013 21:06:57 +0000 (14:06 -0700)]
Merge "Add neon optimize vp9_short_idct10_8x8_add."

11 years agoMerge "vp9_filter.{h, c} cleanup + adding SUBPEL_TAPS constant."
Dmitry Kovalev [Tue, 20 Aug 2013 20:46:53 +0000 (13:46 -0700)]
Merge "vp9_filter.{h, c} cleanup + adding SUBPEL_TAPS constant."

11 years agovp9_filter.{h, c} cleanup + adding SUBPEL_TAPS constant.
Dmitry Kovalev [Tue, 20 Aug 2013 19:29:57 +0000 (12:29 -0700)]
vp9_filter.{h, c} cleanup + adding SUBPEL_TAPS constant.

Change-Id: Ib394ea23f464591dad50b5c65c316701378d06d7

11 years agoAdd neon optimize vp9_short_idct10_8x8_add.
hkuang [Fri, 16 Aug 2013 23:36:07 +0000 (16:36 -0700)]
Add neon optimize vp9_short_idct10_8x8_add.

vp9_short_idct10_8x8_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 several
unnecessary calculations in order to save instructions.

Change-Id: I34fda95e29082b789aded97c2df193991c2d9195

11 years agoEnable zero coeff check in sub8x8 UV rd loop
Jingning Han [Tue, 20 Aug 2013 17:33:42 +0000 (10:33 -0700)]
Enable zero coeff check in sub8x8 UV rd loop

Check the minimum rate-distortion cost of regular quantization and
all zero coeffs cases in the sub8x8 inter prediction rd loop for
luma components. Use this as the cumulative rdcost sent to UV rd
estimation.

Change-Id: Ia4bc7700437d5e13d7cdad4cf9ae57ab036d3e97

11 years agoMerge "Cleanup/enhancements of switchable filter search"
Deb Mukherjee [Tue, 20 Aug 2013 17:16:51 +0000 (10:16 -0700)]
Merge "Cleanup/enhancements of switchable filter search"

11 years agoMerge "Moving plane_block_idx from vp9_blockd.h to vp9_quantize.c."
Dmitry Kovalev [Tue, 20 Aug 2013 17:06:22 +0000 (10:06 -0700)]
Merge "Moving plane_block_idx from vp9_blockd.h to vp9_quantize.c."

11 years agoMerge "Adding has_second_ref function."
Dmitry Kovalev [Tue, 20 Aug 2013 17:06:14 +0000 (10:06 -0700)]
Merge "Adding has_second_ref function."

11 years agoMerge "Adding VP9_FILTER_BITS constant."
Dmitry Kovalev [Tue, 20 Aug 2013 17:05:09 +0000 (10:05 -0700)]
Merge "Adding VP9_FILTER_BITS constant."

11 years agoCleanup/enhancements of switchable filter search
Deb Mukherjee [Fri, 16 Aug 2013 20:51:00 +0000 (13:51 -0700)]
Cleanup/enhancements of switchable filter search

Cleans up the switchable filter search logic. Also adds a
speed feature - a variance threshold - to disable filter search
if source variance is lower than this value.

Results: derfraw300
threshold = 16, psnr -0.238%, 4-5% speedup (tested on football)
threshold = 32, psnr -0.381%, 8-9% speedup (tested on football)
threshold = 64, psnr -0.611%, 12-13% speedup (tested on football)
threshold = 96, psnr -0.804%, 16-17% speedup (tested on football)

Based on these results, the threshold is chosen as 16 for speed 1,
32 for speed 2, 64 for speed 3 and 96 for speed 4.

Change-Id: Ib630d39192773b1983d3d349b97973768e170c04

11 years agoMerge "Enable early termination in uv rd loop"
Jingning Han [Tue, 20 Aug 2013 16:07:26 +0000 (09:07 -0700)]
Merge "Enable early termination in uv rd loop"

11 years agoMerge "fix the mv_ref_idx issue"
Jim Bankoski [Tue, 20 Aug 2013 16:00:57 +0000 (09:00 -0700)]
Merge "fix the mv_ref_idx issue"

11 years agofix the mv_ref_idx issue
Jim Bankoski [Tue, 20 Aug 2013 15:14:52 +0000 (08:14 -0700)]
fix the mv_ref_idx issue

The following issue was reported :
https://code.google.com/p/webm/issues/detail?id=601&q=jimbankoski&sort=-id&colspec=ID%20Pri%20mstone%20ReleaseBlock%20Type%20Component%20Status%20Owner%20Summary

This code makes the choice and code cleaner and removes any question
about whether the border needs to be checked.

Change-Id: Ia7aecfb3168e340618805bd318499176c2989597

11 years agoChanges to auto partition size selection.
Paul Wilkins [Fri, 16 Aug 2013 15:54:12 +0000 (16:54 +0100)]
Changes to auto partition size selection.

Changes to code to auto select a partition size range
based on data from spatial neighbors.

Now looks at the sb_type in each 8x8 block of above
and left SB64.

The effect on speed 1 is now weaker giving better
quality but less speed gain. Now also used in speed 2.

Change-Id: Iace33a97d5c3498dd2a9a8a4067351941abcbabc

11 years agoAdding VP9_FILTER_BITS constant.
Dmitry Kovalev [Tue, 20 Aug 2013 07:42:25 +0000 (00:42 -0700)]
Adding VP9_FILTER_BITS constant.

Removing VP9_FILTER_WEIGHT, VP9_FILTER_SHIFT, BLOCK_WIDTH_HEIGHT
constants. Using ROUND_POWER_OF_TWO for rounding.

Change-Id: I2e8d6858dcd600a87096138209731137d7decc24

11 years agoAdding has_second_ref function.
Dmitry Kovalev [Tue, 20 Aug 2013 01:39:34 +0000 (18:39 -0700)]
Adding has_second_ref function.

Updating implementation of vp9_get_pred_context_single_ref_p1 using
has_second_ref function to make code easier to read.

Change-Id: Ie8f60403a7195117ceb2c6c43176ca9a9e70b909

11 years agoChange to limit the mv search range
Yaowu Xu [Sat, 10 Aug 2013 22:04:02 +0000 (15:04 -0700)]
Change to limit the mv search range

As the pixel values beyond image border are duplicates of pixels
on edge, the change limits the mv search range, any mv beyond
the limits no longer produce new/different prediction values
as entire block with pixels used for subpel interpolation are
outside image border.

Change-Id: I4c6fdf06e33c1cef1489f5470ce0fb4e5e01fb79

11 years agofix a bug when null function pointer is used.
Yaowu Xu [Tue, 20 Aug 2013 00:16:12 +0000 (17:16 -0700)]
fix a bug when null function pointer is used.

For certain partition size, the function poniter may not be intialized
at all. The patch prevent the call if the pointer is not set.

Change-Id: I78b8c3992b639e8799a16b3c74f0973d07b8b9ac

11 years agoMoving plane_block_idx from vp9_blockd.h to vp9_quantize.c.
Dmitry Kovalev [Mon, 19 Aug 2013 23:44:10 +0000 (16:44 -0700)]
Moving plane_block_idx from vp9_blockd.h to vp9_quantize.c.

Change-Id: Ib8af21f2e7f603c2fb407e5d15a3bba64b545b49

11 years agoEnable early termination in uv rd loop
Jingning Han [Wed, 14 Aug 2013 23:50:45 +0000 (16:50 -0700)]
Enable early termination in uv rd loop

This commit enables early termination in the rate-distortion
optimization search loop for chroma components. When the cumulative
rd cost is above the current best value, skip the rest per-block
transform/quantization/coeff_cost and continue to the next
prediction mode.

For bus_cif at 2000 kbps, the average run-time goes down from
168546ms -> 164678ms, (2% speed-up) at speed 0
 36197ms ->  34465ms, (4% speed-up) at speed 1

Change-Id: I9d3043864126e62bd0166250d66b3170d520b3c0

11 years agoPassing plane_bsize to foreach_transformed_block_visitor.
Dmitry Kovalev [Mon, 19 Aug 2013 22:47:24 +0000 (15:47 -0700)]
Passing plane_bsize to foreach_transformed_block_visitor.

Updating all foreach_transformed_block_visitor functions to work with
plane block size instead of general block. Removing a lot of duplicated
code.

Change-Id: I6a9069e27528c611f5a648e1da0c5a5fd17f1bb4

11 years agoMerge "Fix potential use of uninitialized value"
Jingning Han [Mon, 19 Aug 2013 22:15:58 +0000 (15:15 -0700)]
Merge "Fix potential use of uninitialized value"

11 years agoMerge "Fix the returned distortion value in rd_pick_intra"
Jingning Han [Mon, 19 Aug 2013 21:34:19 +0000 (14:34 -0700)]
Merge "Fix the returned distortion value in rd_pick_intra"

11 years agoUsing plane_bsize instead of bsize.
Dmitry Kovalev [Mon, 19 Aug 2013 20:20:21 +0000 (13:20 -0700)]
Using plane_bsize instead of bsize.

This change set is intermediate. The next one will remove all repetitive
plane_bsize calculations, because it will be passed as argument to
foreach_transformed_block_visitor.

Change-Id: Ifc12e0b330e017c6851a28746b3a5460b9bf7f0b

11 years agoFurther correct bug in loopfilter initialization
Adrian Grange [Mon, 19 Aug 2013 18:58:52 +0000 (11:58 -0700)]
Further correct bug in loopfilter initialization

The intent was to initialize the deltas for the
segment to the computed value, irrespective of mode
and reference frame if (mode_ref_delta_enabled == 0).

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

Change-Id: I10435cb63d0f88359bb4c14f22181878a1988e72

11 years agoFix potential use of uninitialized value
Jingning Han [Mon, 19 Aug 2013 16:28:34 +0000 (09:28 -0700)]
Fix potential use of uninitialized value

Initialize the best mode and tx_size values in the rate-distortion
optimization search loop.

Change-Id: Ibfb5c0895691f172abcd4265c23aef4cb99fa8af

11 years agoFix the returned distortion value in rd_pick_intra
Jingning Han [Fri, 16 Aug 2013 00:03:14 +0000 (17:03 -0700)]
Fix the returned distortion value in rd_pick_intra

Return the distortion value in vp9_rd_pick_intra_mode_sb as sum of
dist_y and dist_uv. Remove the right shift operation on dist_uv,
and make it consistent with that of vp9_rd_pick_inter_mode_sb.

Change-Id: I9d564e242d9add38e32595d33b0e0dddb1d55e5b

11 years agoRemoving unused or redundant arguments from *_args structures.
Dmitry Kovalev [Fri, 16 Aug 2013 19:51:20 +0000 (12:51 -0700)]
Removing unused or redundant arguments from *_args structures.

Redundant dst, pre[2] from build_inter_predictors_args, unused cm from
encode_b_args.

Change-Id: I2c476cd328c5c0cca4c78ba451ca6ba2a2c37e2d

11 years agoMerge "Moving from ss_txfrm_size to tx_size."
Dmitry Kovalev [Fri, 16 Aug 2013 19:46:45 +0000 (12:46 -0700)]
Merge "Moving from ss_txfrm_size to tx_size."

11 years agoMerge "Renaming d27 predictor to d207."
Dmitry Kovalev [Fri, 16 Aug 2013 19:07:24 +0000 (12:07 -0700)]
Merge "Renaming d27 predictor to d207."

11 years agoMerge "Reduce the instructions of idct8x8. Also add the saving and restoring of D...
Johann [Fri, 16 Aug 2013 18:30:21 +0000 (11:30 -0700)]
Merge "Reduce the instructions of idct8x8. Also add the saving and restoring of D registers."

11 years agoMerge "Reduce instructions of idct4x4."
Johann [Fri, 16 Aug 2013 18:28:35 +0000 (11:28 -0700)]
Merge "Reduce instructions of idct4x4."

11 years agoMerge "vp9: neon: optimise vp9_wide_mbfilter_neon"
Frank Galligan [Fri, 16 Aug 2013 18:16:48 +0000 (11:16 -0700)]
Merge "vp9: neon: optimise vp9_wide_mbfilter_neon"

11 years agoReduce instructions of idct4x4.
hkuang [Fri, 16 Aug 2013 17:54:56 +0000 (10:54 -0700)]
Reduce instructions of idct4x4.

Change-Id: Ia26a2526804e7e2f656b0051618a615fca8fc79d

11 years agoReduce the instructions of idct8x8. Also add the
hkuang [Fri, 16 Aug 2013 17:27:00 +0000 (10:27 -0700)]
Reduce the instructions of idct8x8. Also add the
saving and restoring of D registers.

Change-Id: Id3630c90fcb160ef939fef55411342608af5f990

11 years agoMerge "vp9: neon: use aligned stores in convolve functions"
Johann [Fri, 16 Aug 2013 17:29:59 +0000 (10:29 -0700)]
Merge "vp9: neon: use aligned stores in convolve functions"

11 years agoFixed typos and formatting
Adrian Grange [Fri, 9 Aug 2013 23:25:01 +0000 (16:25 -0700)]
Fixed typos and formatting

Change-Id: I3814984a624bc64147c57efa74fbdda8eda47262

11 years agoMerge "Added resizing & initialization of last frame segment map"
Adrian Grange [Fri, 16 Aug 2013 16:07:36 +0000 (09:07 -0700)]
Merge "Added resizing & initialization of last frame segment map"

11 years agovp9: neon: use aligned stores in convolve functions
Mans Rullgard [Tue, 13 Aug 2013 16:19:57 +0000 (17:19 +0100)]
vp9: neon: use aligned stores in convolve functions

The destination is block-aligned so it is safe to use aligned
stores.

Change-Id: I38261e4fa40bc60e6472edffece59e372908da7e

11 years agoMoving from ss_txfrm_size to tx_size.
Dmitry Kovalev [Fri, 16 Aug 2013 00:03:03 +0000 (17:03 -0700)]
Moving from ss_txfrm_size to tx_size.

Updating foreach_transformed_block_visitor and corresponding functions
to accept tx_size instead of ss_txfrm_size. List of functions per file:

vp9_decodframe.c
  decode_block
  decode_block_intra

vp9_detokenize.c
  decode_block

vp9_encodemb.c
  optimize_block
  vp9_xform_quant
  vp9_encode_block_intra

vp9_rdopt.c
  dist_block
  rate_block
  block_yrd_txfm

vp9_tokenize.c
  set_entropy_context_b
  tokenize_b
  is_skippable

Change-Id: I351bf563eb36cf34db71c3f06b9bbc9a61b55b73

11 years agoMerge "Refactor rd loop for chroma components"
Jingning Han [Thu, 15 Aug 2013 23:02:12 +0000 (16:02 -0700)]
Merge "Refactor rd loop for chroma components"

11 years agoAdded resizing & initialization of last frame segment map
Adrian Grange [Fri, 9 Aug 2013 23:21:27 +0000 (16:21 -0700)]
Added resizing & initialization of last frame segment map

When the frame size changes the last frame segment map must
be resized to match and initialized to 0.

Change-Id: Idc10de109f55dbe9af3a6caae355a2974712243d

11 years agoMerge "Converting code from using ss_txfrm_size to tx_size."
Dmitry Kovalev [Thu, 15 Aug 2013 22:21:09 +0000 (15:21 -0700)]
Merge "Converting code from using ss_txfrm_size to tx_size."

11 years agoMerge "Moving segmentation struct from MACROBLOCKD to VP9_COMMON."
Dmitry Kovalev [Thu, 15 Aug 2013 22:14:32 +0000 (15:14 -0700)]
Merge "Moving segmentation struct from MACROBLOCKD to VP9_COMMON."

11 years agoMerge "vp9: neon: add vp9_convolve_avg_neon"
Johann [Thu, 15 Aug 2013 21:55:15 +0000 (14:55 -0700)]
Merge "vp9: neon: add vp9_convolve_avg_neon"

11 years agoMerge "vp9: neon: add vp9_convolve_copy_neon"
Johann [Thu, 15 Aug 2013 21:55:08 +0000 (14:55 -0700)]
Merge "vp9: neon: add vp9_convolve_copy_neon"

11 years agoRefactor rd loop for chroma components
Jingning Han [Wed, 14 Aug 2013 17:52:36 +0000 (10:52 -0700)]
Refactor rd loop for chroma components

This commit makes the rate-distortion optimization search of chroma
components consistent across all block sizes. It removes redundant
codes.

Change-Id: I7e76f54d045e8efdd41d84a164c71f55b484471b

11 years agoMerge "Remove unused RDCOST_8X8 macro"
Jingning Han [Thu, 15 Aug 2013 20:48:25 +0000 (13:48 -0700)]
Merge "Remove unused RDCOST_8X8 macro"

11 years agoMerge "Unify luma and chroma rd-cost estimation"
Jingning Han [Thu, 15 Aug 2013 20:48:15 +0000 (13:48 -0700)]
Merge "Unify luma and chroma rd-cost estimation"

11 years agoConverting code from using ss_txfrm_size to tx_size.
Dmitry Kovalev [Thu, 15 Aug 2013 18:44:57 +0000 (11:44 -0700)]
Converting code from using ss_txfrm_size to tx_size.

Updated function signatures:
  txfrm_block_to_raster_block
  txfrm_block_to_raster_xy
  extend_for_intra
  vp9_optimize_b

Change-Id: I7213f4c4b1b9ec802f90621d5ba61d5e4dac5e0a