platform/upstream/libvpx.git
12 years agoReplace vpx_ports/config.h with vpx_config.h
Attila Nagy [Thu, 15 Sep 2011 12:34:12 +0000 (15:34 +0300)]
Replace vpx_ports/config.h with vpx_config.h

Just a clean-up.

Change-Id: Iea5b6dc925dcfa7db548bc1ab1a13d26ed5a2c9a

12 years agoFix necessary for input partitions iface to match the RTP profile
Stefan Holmer [Tue, 6 Sep 2011 12:34:36 +0000 (14:34 +0200)]
Fix necessary for input partitions iface to match the RTP profile

These changes fixes a glitch between the RTP profile and the input
partitions interface. Since there's no way for the user to know the
actual number of partitions, the decoder have to read the
multi_token_paritition bits also when input partitions mode is
enabled.

Included are also a couple of fixes for issues with independent
partitions and uninitialized memory reads.

Change-Id: I6f93b15287d291169ed681898ed3fbcc5dc81837

12 years agoMerge "Fixes the boundary checks for extrapolated and interpolated MVs."
John Koleszar [Fri, 16 Sep 2011 15:09:44 +0000 (08:09 -0700)]
Merge "Fixes the boundary checks for extrapolated and interpolated MVs."

12 years agoFixes the boundary checks for extrapolated and interpolated MVs.
Stefan Holmer [Tue, 23 Aug 2011 09:01:14 +0000 (11:01 +0200)]
Fixes the boundary checks for extrapolated and interpolated MVs.

Change-Id: I5b47d39d1604f2650d2f2d1ca2a3f40843c8e1ea

12 years agoMerge "Fix odd-sized image support in decoder examples"
John Koleszar [Wed, 14 Sep 2011 15:39:04 +0000 (08:39 -0700)]
Merge "Fix odd-sized image support in decoder examples"

12 years agoFix odd-sized image support in decoder examples
John Koleszar [Wed, 14 Sep 2011 15:25:24 +0000 (11:25 -0400)]
Fix odd-sized image support in decoder examples

Odd sized images need their chroma plane sizes rounded up.

Change-Id: I3cd6fa60551f05697b67ece5b6928bef2a41bad8

12 years agoFixed encoder crash
Scott LaVarnway [Tue, 13 Sep 2011 15:46:33 +0000 (11:46 -0400)]
Fixed encoder crash

caused by the "Removed bmi copy to/from BLOCKD" commit.

Change-Id: I9fae71bdc34c8ecc07bb81cd3ccf498b91ce3ec7

12 years agoMerge "Skip computation of distortion in vp8_pick_inter_mode if active_map is used"
Scott LaVarnway [Wed, 31 Aug 2011 14:18:52 +0000 (07:18 -0700)]
Merge "Skip computation of distortion in vp8_pick_inter_mode if active_map is used"

12 years agoMerge "Removed bmi copy to/from BLOCKD"
Scott LaVarnway [Wed, 31 Aug 2011 13:57:20 +0000 (06:57 -0700)]
Merge "Removed bmi copy to/from BLOCKD"

12 years agoSkip computation of distortion in vp8_pick_inter_mode if active_map is used
Alpha Lam [Wed, 31 Aug 2011 10:43:00 +0000 (11:43 +0100)]
Skip computation of distortion in vp8_pick_inter_mode if active_map is used

If a block is marked to be inactive then set distortion to 0.

Change-Id: Ib415f19642a2ff7b5cf5cfaedd60ebbd79732272

12 years agoMerge "Recalculate zbin_extra only if regular quantizer is being used"
John Koleszar [Tue, 30 Aug 2011 19:49:24 +0000 (12:49 -0700)]
Merge "Recalculate zbin_extra only if regular quantizer is being used"

12 years agoRecalculate zbin_extra only if regular quantizer is being used
Alpha Lam [Tue, 30 Aug 2011 18:23:34 +0000 (19:23 +0100)]
Recalculate zbin_extra only if regular quantizer is being used

vp8_update_zbin_extra() is called all the time even though the fast
quantizer doesn't use it. Skip this call if fast quantizer is used.

Change-Id: Ia711c38431930cc2486cf59b8466060ef0e9d9db

12 years agoMinor modification on key frame decision
Yunqing Wang [Thu, 25 Aug 2011 20:54:45 +0000 (16:54 -0400)]
Minor modification on key frame decision

This change makes sure that no key frame recoding in real-time mode
even if CONFIG_REALTIME_ONLY is not configured.

Change-Id: Ifc34141f3217a6bb63cc087d78b111fadb35eec2

12 years agoQuiet warning by removing unused variable.
Fritz Koenig [Wed, 24 Aug 2011 22:47:09 +0000 (15:47 -0700)]
Quiet warning by removing unused variable.

fwd_boost_score was not being computed or
referenced, so remove declaration.

Change-Id: Iece36cde1ec113e3c6afaff1407d24cdf12bd0a8

12 years agoRemoved bmi copy to/from BLOCKD
Scott LaVarnway [Wed, 24 Aug 2011 18:42:26 +0000 (14:42 -0400)]
Removed bmi copy to/from BLOCKD

for SPLITMV and B_PRED modes.  Modified code to use the bmi
found in mode_info_context instead of BLOCKD.  On the decode
side, the uvmvs are calculated only when required, instead of
every macroblock.  This is WIP. (bmi should eventually be
removed from BLOCKD)
Small performance gains noticed for RT encodes and decodes.(VGA)

Change-Id: I2ed7f0fd5ca733655df684aa82da575c77a973e7

12 years agoFix naming of sse2 idct functions.
Fritz Koenig [Wed, 24 Aug 2011 17:19:46 +0000 (10:19 -0700)]
Fix naming of sse2 idct functions.

Prepend idct function names with vp8_
so that under profiling they show up
associated with libvpx.

Change-Id: I4fe357b50236cb7730a4cc00164c0a3487a1d8b4

12 years agoMerge "Faster vp8_default_coef_probs"
Scott LaVarnway [Wed, 24 Aug 2011 14:52:10 +0000 (07:52 -0700)]
Merge "Faster vp8_default_coef_probs"

12 years agoFix data accesses for simple loopfilters
Johann [Wed, 24 Aug 2011 00:42:45 +0000 (20:42 -0400)]
Fix data accesses for simple loopfilters

The data that the simple horizontal loopfilter reads is aligned, treat
it accordingly.

For the vertical, we only use the bottom 4 bytes, so don't read in 16
(and incur the penalty for unaligned access).

This shows a small improvement on older processors which have a
significant penalty for unaligned reads.

postproc_mmx.c is unused

Change-Id: I87b29bbc0c3b19ee1ca1de3c4f47332a53087b3d

12 years agoUse local labels for jumps/loops in x86 assembly.
Fritz Koenig [Mon, 22 Aug 2011 22:29:41 +0000 (15:29 -0700)]
Use local labels for jumps/loops in x86 assembly.

Prepend . to local labels in assembly code.  This
allows non unique labels within a file.  Also
makes profiling information more informative
by keeping the function name with the loop name.

Change-Id: I7a983cb3a5ba2413d5dafd0a37936b268fb9e37f

12 years agoReclassify optimized ssim calculations as SSE2.
Fritz Koenig [Mon, 22 Aug 2011 19:36:28 +0000 (12:36 -0700)]
Reclassify optimized ssim calculations as SSE2.

Calculations were incorrectly classified as either
SSE3 or SSSE3.  Only using SSE2 instructions.
Cleanup function names and make non-RTCD code work
as well.

Change-Id: I48ad0218af0cc51c5078070a08511dee43ecfe09

12 years agoMerge "Revert "Reclasify optimized ssim calculations as SSE2.""
Fritz Koenig [Mon, 22 Aug 2011 19:32:12 +0000 (12:32 -0700)]
Merge "Revert "Reclasify optimized ssim calculations as SSE2.""

12 years agoRevert "Reclasify optimized ssim calculations as SSE2."
Fritz Koenig [Mon, 22 Aug 2011 18:31:12 +0000 (11:31 -0700)]
Revert "Reclasify optimized ssim calculations as SSE2."

This reverts commit 01376858cd184d820ff4c2d8390361a8679c0e87

12 years agoMerge "Reclasify optimized ssim calculations as SSE2."
Fritz Koenig [Mon, 22 Aug 2011 16:20:33 +0000 (09:20 -0700)]
Merge "Reclasify optimized ssim calculations as SSE2."

12 years agotools: author_first_release.sh
John Koleszar [Fri, 19 Aug 2011 16:04:04 +0000 (12:04 -0400)]
tools: author_first_release.sh

First version of a simple tool to get a list of the version a user first
contributed to.

Change-Id: I8f1b1fef5343de269c4b6209632c9cedc2cf1a37

12 years agoReclasify optimized ssim calculations as SSE2.
Fritz Koenig [Fri, 19 Aug 2011 15:51:27 +0000 (08:51 -0700)]
Reclasify optimized ssim calculations as SSE2.

Calculations were incorrectly classified as either
SSE3 or SSSE3.  Only using SSE2 instructions.
Cleanup function names and make non-RTCD code work
as well.

Change-Id: I29f5c2ead342b2086a468029c15e2c1d948b5d97

12 years agoMerge "Copy less when active map is in use"
John Koleszar [Fri, 19 Aug 2011 14:31:00 +0000 (07:31 -0700)]
Merge "Copy less when active map is in use"

12 years agoCopy less when active map is in use
Alpha Lam [Tue, 9 Aug 2011 19:59:45 +0000 (20:59 +0100)]
Copy less when active map is in use

When active map is specified and the current frame is not a key frame,
golden frame nor a altref frame then copy only those active regions.

This significantly reduces encoding time by as much as 19% on the test
system where realtime encoding is used. This is particularly useful
when the frame size is large (e.g. 2560x1600) and there's only a few
action macroblocks.

Change-Id: If394a813ec2df5a0201745d1348dbde4278f7ad4

12 years agoSmall boost to every other frame.
Paul Wilkins [Wed, 17 Aug 2011 13:14:23 +0000 (14:14 +0100)]
Small boost to every other frame.

Instead of a single mid GF boost apply a few extra bits to
every other frame. This gives a very small average metrics
improvement on both derf and YT sets.

Also use min GF interval as min KF interval.

Change-Id: Iee238b8cae0ffaed850a5a944ac825cee18da485

12 years agoFaster vp8_default_coef_probs
Scott LaVarnway [Tue, 16 Aug 2011 20:21:21 +0000 (16:21 -0400)]
Faster vp8_default_coef_probs

Copies from a generated table instead of building the
default coeff probabilities during runtime.

Change-Id: I4d9551ea3a2d7d4a4f7ce9eda006495221a8de50

12 years agoMerge v0.9.7-p1 release int 'origin/master'
John Koleszar [Mon, 15 Aug 2011 21:08:40 +0000 (17:08 -0400)]
Merge v0.9.7-p1 release int 'origin/master'

Change-Id: I93388d2f8846615ad1e26b975308c5e96b9b1918

12 years agoUpdate CHANGELOG for v0.9.7-p1 v0.9.7-p1
John Koleszar [Mon, 15 Aug 2011 21:02:45 +0000 (17:02 -0400)]
Update CHANGELOG for v0.9.7-p1

Change-Id: I5490a9cad2d6752832b6bf4ec1835c06a45eeb9b

12 years agoDon't set the bmi mode when doing error concealment
Stefan Holmer [Mon, 15 Aug 2011 07:28:41 +0000 (09:28 +0200)]
Don't set the bmi mode when doing error concealment

Since the block will be interpreted as an inter block, the mode will
be interpreted as a motion vector, resulting in bad concealment.

Change-Id: Ifcc685ae1cc883492bce6dbd61e418d91a89b053

12 years agoDon't set the bmi mode when doing error concealment
Stefan Holmer [Mon, 15 Aug 2011 07:28:41 +0000 (09:28 +0200)]
Don't set the bmi mode when doing error concealment

Since the block will be interpreted as an inter block, the mode will
be interpreted as a motion vector, resulting in bad concealment.

Change-Id: Ifcc685ae1cc883492bce6dbd61e418d91a89b053

12 years agoGenerate libvpx_srcs.txt from current configuration
John Koleszar [Fri, 12 Aug 2011 18:59:10 +0000 (14:59 -0400)]
Generate libvpx_srcs.txt from current configuration

To get a list of files that the libvpx library depends on in the current
configuration, run:

  $ make target=libs libvpx_srcs.txt

Change-Id: I68a69648ecf212f0fe29c325297728ac2a9393d9

12 years agoRevert "Improved 1-pass CBR rate control"
John Koleszar [Fri, 12 Aug 2011 18:51:36 +0000 (14:51 -0400)]
Revert "Improved 1-pass CBR rate control"

This reverts commit b5ea2fbc2c1554769848774c836aad262af95072. Further
testing showed noticable keyframe popping in some cases, reverting this
for now to give time for a proper fix.

Conflicts:

vp8/encoder/onyx_if.c
vp8/encoder/ratectrl.c

Change-Id: I159f53d1bf0e24c035754ab3ded8ccfd58fd04af

12 years agoPropagate macroblock MV to subblocks for error concealment
John Koleszar [Fri, 12 Aug 2011 15:30:54 +0000 (11:30 -0400)]
Propagate macroblock MV to subblocks for error concealment

EC expects the subblock MVs to be populated, but
f1d6cc79e43f0066632f19c1854ca365086b712b removed this code. This
commit restores it, protected by CONFIG_ERROR_CONCEALMENT. May move this
to the EC code more directly in the future.

Change-Id: I44f8f985720cb9a1bf222e59143f9e69abf56ad2

12 years agoDisable error concealment until first key frame is decoded
Stefan Holmer [Mon, 8 Aug 2011 08:56:20 +0000 (10:56 +0200)]
Disable error concealment until first key frame is decoded

When error concealment is enabled the first key frame must
be successfully received before error concealment is activated.
Error concealment will be activated when the delta following
delta frame is received.

Also fixed a couple of bugs related to error tracking in
multi-threading. And avoiding decoding corrupt residual
when we have multiple non-resilient partitions.

Change-Id: I45c4bb296e2f05f57624aef500a874faf431a60d

12 years agoFix potential OOB read with Error Concealment
John Koleszar [Fri, 5 Aug 2011 16:27:25 +0000 (12:27 -0400)]
Fix potential OOB read with Error Concealment

This patch fixes an OOB read when error concealment is enabled and the
partition sizes are corrupt. The partition size read from the bitstream
was not being validated in EC mode.

Change-Id: Ia81dfd4bce1ab29ee78e42320abe52cee8318974

12 years agoMerge "Disable error concealment until first key frame is decoded"
John Koleszar [Fri, 12 Aug 2011 18:45:26 +0000 (11:45 -0700)]
Merge "Disable error concealment until first key frame is decoded"

12 years agoPropagate macroblock MV to subblocks for error concealment
John Koleszar [Fri, 12 Aug 2011 15:30:54 +0000 (11:30 -0400)]
Propagate macroblock MV to subblocks for error concealment

EC expects the subblock MVs to be populated, but
f1d6cc79e43f0066632f19c1854ca365086b712b removed this code. This
commit restores it, protected by CONFIG_ERROR_CONCEALMENT. May move this
to the EC code more directly in the future.

Change-Id: I44f8f985720cb9a1bf222e59143f9e69abf56ad2

12 years agoDisable error concealment until first key frame is decoded
Stefan Holmer [Mon, 8 Aug 2011 08:56:20 +0000 (10:56 +0200)]
Disable error concealment until first key frame is decoded

When error concealment is enabled the first key frame must
be successfully received before error concealment is activated.
Error concealment will be activated when the delta following
delta frame is received.

Also fixed a couple of bugs related to error tracking in
multi-threading. And avoiding decoding corrupt residual
when we have multiple non-resilient partitions.

Change-Id: I45c4bb296e2f05f57624aef500a874faf431a60d

12 years agoFix potential OOB read with Error Concealment
John Koleszar [Fri, 5 Aug 2011 16:27:25 +0000 (12:27 -0400)]
Fix potential OOB read with Error Concealment

This patch fixes an OOB read when error concealment is enabled and the
partition sizes are corrupt. The partition size read from the bitstream
was not being validated in EC mode.

Change-Id: Ia81dfd4bce1ab29ee78e42320abe52cee8318974

12 years agoMerge "Adjust half-pixel only search"
Yunqing Wang [Fri, 5 Aug 2011 19:15:32 +0000 (12:15 -0700)]
Merge "Adjust half-pixel only search"

12 years ago(Re)Merge branch 'master' into cayuga
John Koleszar [Thu, 4 Aug 2011 21:05:55 +0000 (17:05 -0400)]
(Re)Merge branch 'master' into cayuga

Corrected the merge direction this time, so that running
`git describe` on the master branch finds v0.9.7 as the most recent
tag.

Change-Id: I9e7b5d473c26e670c6d9a76f5c03fa617690651d

12 years agoMerge cayuga release into master branch
John Koleszar [Thu, 4 Aug 2011 17:30:15 +0000 (10:30 -0700)]
Merge cayuga release into master branch

Change-Id: I54ab3c22d281efe69af9c9108fcbfadd3cc747ee

12 years agoMerge "Update CHANGELOG for Cayuga release" into cayuga v0.9.7
John Koleszar [Thu, 4 Aug 2011 17:30:15 +0000 (10:30 -0700)]
Merge "Update CHANGELOG for Cayuga release" into cayuga

12 years agoMerge changes Ic7725e27,Ib3d54bfa into cayuga
John Koleszar [Wed, 3 Aug 2011 20:45:24 +0000 (13:45 -0700)]
Merge changes Ic7725e27,Ib3d54bfa into cayuga

* changes:
  Update AUTHORS
  Update .mailmap entry for Ralph Giles

12 years agoMerge changes I585167e1,Ia07602bd into cayuga
John Koleszar [Wed, 3 Aug 2011 20:44:32 +0000 (13:44 -0700)]
Merge changes I585167e1,Ia07602bd into cayuga

* changes:
  Fix building of static libs on universal-darwin
  Fix asm offsets generation for universal-darwin builds

12 years agoFix source buffer selection
John Koleszar [Wed, 3 Aug 2011 20:12:12 +0000 (16:12 -0400)]
Fix source buffer selection

This patch fixes a bug in the interaction between the recode loop and
spatial resampling. If the codec was in a spatial resampling state,
and a subsequent iteration of the recode loop disables resampling,
then the source buffer must be reset to the unscaled source.

Change-Id: I4e4cd47b943f6cd26a47449dc7f4255b38e27c77

12 years agoAdjust half-pixel only search
Yunqing Wang [Wed, 3 Aug 2011 15:51:07 +0000 (11:51 -0400)]
Adjust half-pixel only search

Changed motion search in vp8_find_best_half_pixel_step() to be the
same as in vp8_find_best_sub_pixel_step(), which checks 5 points
instead of 8 points. This only affects real-time mode with
cpu-used >=9. Tests showed it gives 2% encoding speedup with
a quality loss(psnr) of up to 0.5%.

Change-Id: I16049cad1535002346d46cfdfad345bfc3dc5146

12 years agoFix building of static libs on universal-darwin
John Koleszar [Wed, 3 Aug 2011 13:20:37 +0000 (09:20 -0400)]
Fix building of static libs on universal-darwin

The static libs should not be built from sources during the top level
of a universal build. This regression was introduced in commit
495b241fa6b03345baf2b2f39aa8c06c735fccc2, which made the static
libs selectable under CONFIG_STATIC.

Change-Id: I585167e17459877e0fa7fa19e1046c3703d91c97

12 years agoFix asm offsets generation for universal-darwin builds
John Koleszar [Wed, 3 Aug 2011 12:43:43 +0000 (08:43 -0400)]
Fix asm offsets generation for universal-darwin builds

Added BUILD_PFX to correct dependencies.

Change-Id: Ia07602bd98ef2253242b1bd66ef05e3b1e64ba7d

12 years agoupdate extend frame borders
Johann [Tue, 2 Aug 2011 23:20:27 +0000 (19:20 -0400)]
update extend frame borders

the neon code made several assumptions which were broken by a recent
change: https://review.webmproject.org/2676

update the code with new assumptions and guard them with a compile time
assert

Change-Id: I32a8378030759966068f34618d7b4b1b02e101a0

12 years agoUpdate CHANGELOG for Cayuga release
John Koleszar [Tue, 2 Aug 2011 18:41:32 +0000 (14:41 -0400)]
Update CHANGELOG for Cayuga release

Change-Id: If6f20553159105c05f9a684cb7c8f3778c7894a1

12 years agoinclude asm_com/dec_offsets for make dist
James Berry [Tue, 2 Aug 2011 17:42:03 +0000 (13:42 -0400)]
include asm_com/dec_offsets for make dist

Change-Id: Ia1ad66066a24c01915cd9e3ff75c7e070cc984c8

12 years agoUpdate AUTHORS
John Koleszar [Tue, 2 Aug 2011 14:09:59 +0000 (10:09 -0400)]
Update AUTHORS

Change-Id: Ic7725e279d2263515e5312c152c58e1644eb2495

12 years agoUpdate .mailmap entry for Ralph Giles
John Koleszar [Tue, 2 Aug 2011 14:09:36 +0000 (10:09 -0400)]
Update .mailmap entry for Ralph Giles

Change-Id: Ib3d54bfa81720a0b2877837d7149cd12d26e75e4

12 years agoSync `vpxenc --timebase` usage wording with docs change.
Lou Quillio [Mon, 1 Aug 2011 19:34:48 +0000 (15:34 -0400)]
Sync `vpxenc --timebase` usage wording with docs change.

Change-Id: Ia406272a97806c0194435bb7f24e24d353ef5cc6

12 years agoMerge "include the arm header files in make dist" into cayuga
John Koleszar [Tue, 2 Aug 2011 12:21:10 +0000 (05:21 -0700)]
Merge "include the arm header files in make dist" into cayuga

12 years agoMerge "Fix building with --disable-postproc" into cayuga
John Koleszar [Tue, 2 Aug 2011 12:19:11 +0000 (05:19 -0700)]
Merge "Fix building with --disable-postproc" into cayuga

12 years agoFix building with --disable-postproc
John Koleszar [Mon, 1 Aug 2011 20:42:14 +0000 (16:42 -0400)]
Fix building with --disable-postproc

Change-Id: I7e6bc28e7974a376da747300744e0dd5dc1d21e9

12 years agoinclude the arm header files in make dist
Johann [Mon, 1 Aug 2011 21:16:10 +0000 (17:16 -0400)]
include the arm header files in make dist

Change-Id: Ibcf5b4b14153f65ce1b53c3bfba87ad2feb17bbd

12 years agoMerge "build error fix - obj_int_extract.bat" into cayuga
John Koleszar [Mon, 1 Aug 2011 20:56:32 +0000 (13:56 -0700)]
Merge "build error fix - obj_int_extract.bat" into cayuga

12 years agobuild error fix - obj_int_extract.bat
James Berry [Mon, 1 Aug 2011 20:10:41 +0000 (16:10 -0400)]
build error fix - obj_int_extract.bat

obj_int_extract.bat was not being copied
correctly for make dist. It now is.

Change-Id: I976479f90bbfa4798f241db1055e1e3b04ca2830

12 years agoDisable FORTIFY_SOURCE on glibc targets
John Koleszar [Fri, 29 Jul 2011 18:23:32 +0000 (14:23 -0400)]
Disable FORTIFY_SOURCE on glibc targets

Improve binary distributions by defeating longjmp interception. See
http://code.google.com/p/webm/issues/detail?id=166 for more information.

Change-Id: I5ac731ec3f3570088597201d0f411473e2dffa4f

12 years agoinstall asm_offsets.h
John Koleszar [Fri, 29 Jul 2011 20:56:43 +0000 (16:56 -0400)]
install asm_offsets.h

Ensure vpx_ports/asm_offsets.h is installed with make dist

Change-Id: If9f32273fff975d60de1583b039dbbce8a7ccd27

12 years agoMerge "Convert rc_max_intra_bitrate_pct to control"
John Koleszar [Fri, 29 Jul 2011 18:57:48 +0000 (11:57 -0700)]
Merge "Convert rc_max_intra_bitrate_pct to control"

12 years agoCorrectly track sharpness in vp8cx_pick_filter_level_fast
John Koleszar [Fri, 29 Jul 2011 16:26:55 +0000 (12:26 -0400)]
Correctly track sharpness in vp8cx_pick_filter_level_fast

Make sure to update last_sharpness_level from the current
sharpness_level whenever it changes.

Change-Id: I0258d2f5b11a407abf6176a8d4c4994d925943f0

12 years agoMerge "configure: add --enable-static option"
John Koleszar [Thu, 28 Jul 2011 14:08:35 +0000 (07:08 -0700)]
Merge "configure: add --enable-static option"

12 years agoConvert rc_max_intra_bitrate_pct to control
John Koleszar [Thu, 28 Jul 2011 13:17:32 +0000 (09:17 -0400)]
Convert rc_max_intra_bitrate_pct to control

Since this is the only ABI incompatible change since the last release,
convert it to use the control interface instead. The member of the
configuration struct is replaced with the VP8E_SET_MAX_INTRA_BITRATE_PCT
control.

More significant API changes were expected to be forthcoming when this
control was first introduced, and while they continue to be expected,
it's not worth breaking compatibility for only this change.

Change-Id: I799d8dbe24c8bc9c241e0b7743b2b64f81327d59

12 years agoPreload reference area in sub-pixel motion search (real-time mode)
Yunqing Wang [Fri, 22 Jul 2011 20:01:11 +0000 (16:01 -0400)]
Preload reference area in sub-pixel motion search (real-time mode)

This change implemented same idea in change "Preload reference area
to an intermediate buffer in sub-pixel motion search." The changes
were made to vp8_find_best_sub_pixel_step() and vp8_find_best_half
_pixel_step() functions which are called when speed >= 5. Test
result (using tulip clip):

1. On Core2 Quad machine(Linux)
rt mode, speed (-5 ~ -8), encoding speed gain: 2% ~ 3%
rt mode, speed (-9 ~ -11), encoding speed gain: 1% ~ 2%
rt mode, speed (-12 ~ -14), no noticeable encoding speed gain

2. On Xeon machine(Linux)
Test on speed (-5 ~ -14) didn't show noticeable speed change.

Change-Id: I21bec2d6e7fbe541fcc0f4c0366bbdf3e2076aa2

12 years agoMerge "Fix range checks in motion search"
Yunqing Wang [Wed, 27 Jul 2011 16:34:13 +0000 (09:34 -0700)]
Merge "Fix range checks in motion search"

12 years agoFix range checks in motion search
Yunqing Wang [Wed, 27 Jul 2011 14:37:33 +0000 (10:37 -0400)]
Fix range checks in motion search

There were some situations that the start motion vectors were
out of range. This fix adjusted range checks to make sure they
are checked and clamped.

Change-Id: Ife83b7fed0882bba6d1fa559b6e63c054fd5065d

12 years agovpxenc: cosmetics: timebase help update / spelling
James Zern [Mon, 25 Jul 2011 20:26:18 +0000 (13:26 -0700)]
vpxenc: cosmetics: timebase help update / spelling

The timebase update fixes Issue #61.

Change-Id: I425158da7ea639464f61e6dd604ac9e6c72b7266

12 years agoMerge "cosmetics: consistently use [u]int64_t"
John Koleszar [Tue, 26 Jul 2011 19:57:43 +0000 (12:57 -0700)]
Merge "cosmetics: consistently use [u]int64_t"

12 years agocosmetics: consistently use [u]int64_t
James Zern [Tue, 26 Jul 2011 01:44:59 +0000 (18:44 -0700)]
cosmetics: consistently use [u]int64_t

Removes mixed usage of (unsigned) long long and INT64.
Fixes Issue #208.

Change-Id: I220d3ed5ce4bb1280cd38bb3715f208ce23cf83a

12 years agoMerge ""Eliminated TOKENEXTRABITS" broke the windows build."
Johann [Tue, 26 Jul 2011 13:34:31 +0000 (06:34 -0700)]
Merge ""Eliminated TOKENEXTRABITS" broke the windows build."

12 years ago"Eliminated TOKENEXTRABITS" broke the windows build.
Scott LaVarnway [Tue, 26 Jul 2011 13:33:16 +0000 (09:33 -0400)]
"Eliminated TOKENEXTRABITS" broke the windows build.

Fixed.

Change-Id: I3348e8dbcaee6ace263af413701101d77636e5df

12 years agoconfigure: add --enable-static option
James Zern [Mon, 25 Jul 2011 22:40:36 +0000 (15:40 -0700)]
configure: add --enable-static option

Fixes issue #62.

Change-Id: I0567cf7897c0942666c19b3231c8c3b8e9c3e7cc

12 years agoMerge "Eliminated TOKENEXTRABITS"
Scott LaVarnway [Mon, 25 Jul 2011 21:35:58 +0000 (14:35 -0700)]
Merge "Eliminated TOKENEXTRABITS"

12 years agoEliminated TOKENEXTRABITS
Scott LaVarnway [Mon, 25 Jul 2011 21:11:24 +0000 (17:11 -0400)]
Eliminated TOKENEXTRABITS

Noticed small performance gains, depending on material.

Change-Id: I334369f6312bc19aa73481fc3f790ab181e11867

12 years agoMerge "Use CONFIG_FAST_UNALIGNED consistently in codec"
Yunqing Wang [Mon, 25 Jul 2011 19:40:50 +0000 (12:40 -0700)]
Merge "Use CONFIG_FAST_UNALIGNED consistently in codec"

12 years agoSpecify size for argument pushed to stack
Yunqing Wang [Mon, 25 Jul 2011 15:30:45 +0000 (11:30 -0400)]
Specify size for argument pushed to stack

The change fixes building error on Win64.

Change-Id: I63d25b26220c4da8a98ca2e36530cbb802468e6b

12 years agoUse CONFIG_FAST_UNALIGNED consistently in codec
Yunqing Wang [Mon, 25 Jul 2011 14:11:24 +0000 (10:11 -0400)]
Use CONFIG_FAST_UNALIGNED consistently in codec

CONFIG_FAST_UNALIGNED is enabled by default. Disable it if it is
not supported by hardware.

Change-Id: I7d6905ed79fed918bca074bd62820b0c929d81ab

12 years agoMerge "fix sharpness bug and clean up"
Johann [Fri, 22 Jul 2011 16:34:55 +0000 (09:34 -0700)]
Merge "fix sharpness bug and clean up"

12 years agofix sharpness bug and clean up
Johann [Wed, 20 Jul 2011 19:53:42 +0000 (15:53 -0400)]
fix sharpness bug and clean up

sharpness was not recalculated in vp8cx_pick_filter_level_fast

remove last_filter_type. all values are calculated, don't need to update
the lfi data when it changes.

always use cm->sharpness_level. the extra indirection was annoying.

don't track last frame_type or sharpness_level manually. frame type
only matters for motion search and sharpness_level is taken care of in
frame_init

move function declarations to their proper header

Change-Id: I7ef037bd4bf8cf5e37d2d36bd03b5e22a2ad91db

12 years agoMerge "Preload reference area to an intermediate buffer in sub-pixel motion search"
Yunqing Wang [Fri, 22 Jul 2011 13:56:15 +0000 (06:56 -0700)]
Merge "Preload reference area to an intermediate buffer in sub-pixel motion search"

12 years agoPreload reference area to an intermediate buffer in sub-pixel motion search
Yunqing Wang [Tue, 28 Jun 2011 13:14:13 +0000 (09:14 -0400)]
Preload reference area to an intermediate buffer in sub-pixel motion search

In sub-pixel motion search, the search range is small(+/- 3 pixels).
Preload whole search area from reference buffer into a 32-byte
aligned buffer. Then in search, load reference data from this buffer
instead. This keeps data in cache, and reduces the crossing cache-
line penalty. For tulip clip, tests on Intel Core2 Quad machine(linux)
showed encoder speed improvement:
  3.4%   at --rt --cpu-used =-4
  2.8%   at --rt --cpu-used =-3
  2.3%   at --rt --cpu-used =-2
  2.2%   at --rt --cpu-used =-1

Test on Atom notebook showed only 1.1% speed improvement(speed=-4).
Test on Xeon machine also showed less improvement, since unaligned
data access latency is greatly reduced in newer cores.

Next, I will apply similar idea to other 2 sub-pixel search functions
for encoding speed > 4.

Make this change exclusively for x86 platforms.

Change-Id: Ia7bb9f56169eac0f01009fe2b2f2ab5b61d2eb2f

13 years agoMerge "Add .size directive to ARM asm functions."
Johann [Thu, 21 Jul 2011 19:56:59 +0000 (12:56 -0700)]
Merge "Add .size directive to ARM asm functions."

13 years agoMerge "Mark ARM asm objects as allowing a non-executable stack."
Johann [Thu, 21 Jul 2011 19:20:00 +0000 (12:20 -0700)]
Merge "Mark ARM asm objects as allowing a non-executable stack."

13 years agoAdd .size directive to ARM asm functions.
Timothy B. Terriberry [Tue, 19 Jul 2011 19:13:18 +0000 (12:13 -0700)]
Add .size directive to ARM asm functions.

This makes them show up properly in debugging tools like gdb and
 valgrind.

Change-Id: I0c72548a1090de88ba226314e5efe63360b7e07f

13 years agoMark ARM asm objects as allowing a non-executable stack.
Timothy B. Terriberry [Tue, 19 Jul 2011 20:09:22 +0000 (13:09 -0700)]
Mark ARM asm objects as allowing a non-executable stack.

This adds the magic .note.GNU-stack section at the end of each ARM
 asm file (when built with gas), indicating that a non-executable
 stack is allowed.
Without this section, the linker will assume the object requires an
 executable stack by default, forcing an executable stack for the
 entire program.

Change-Id: Ie86de6a449b52d392b9e5e0479833ed8c508ee65

13 years agoMerge "Increase chrow row alignment to 16 bytes."
John Koleszar [Thu, 21 Jul 2011 14:32:39 +0000 (07:32 -0700)]
Merge "Increase chrow row alignment to 16 bytes."

13 years agoMerge "Add improvements made in good-quality mode to real-time mode"
Yunqing Wang [Thu, 21 Jul 2011 14:27:08 +0000 (07:27 -0700)]
Merge "Add improvements made in good-quality mode to real-time mode"

13 years agoIncrease chrow row alignment to 16 bytes.
Timothy B. Terriberry [Wed, 20 Jul 2011 17:20:31 +0000 (10:20 -0700)]
Increase chrow row alignment to 16 bytes.

This is done by expanding luma row to 32-byte alignment, since
 there is currently a bunch of code that assumes that
 uv_stride == y_stride/2 (see, for example, vp8/common/postproc.c,
 common/reconinter.c, common/arm/neon/recon16x16mb_neon.asm,
 encoder/temporal_filter.c, and possibly others; I haven't done a
 full audit).
It also uses replaces the hardcoded border of 16 in a number of
 encoder buffers with VP8BORDERINPIXELS (currently 32), as the
 chroma rows start at an offset of border/2.
Together, these two changes have the nice advantage that simply
 dumping the frame memory as a contiguous blob produces a valid,
 if padded, image.

Change-Id: Iaf5ea722ae5c82d5daa50f6e2dade9de753f1003

13 years agoencoder: don't set the fragment bit for the last partition
Attila Nagy [Wed, 20 Jul 2011 11:09:42 +0000 (14:09 +0300)]
encoder: don't set the fragment bit for the last partition

Change-Id: Icb4e4f0d7c3074a8507852178be87541a1cb5bac

13 years agoMerge "Moved vp8_encode_bool into boolhuff.h"
Scott LaVarnway [Tue, 19 Jul 2011 15:15:14 +0000 (08:15 -0700)]
Merge "Moved vp8_encode_bool into boolhuff.h"

13 years agoRevert "Disable __longjmp_chk protection"
John Koleszar [Tue, 19 Jul 2011 13:58:47 +0000 (09:58 -0400)]
Revert "Disable __longjmp_chk protection"

This reverts commit b73a3693e581583e9ec676f4396d0c3d173e2462.

This version of the check doesn't work with generic-gnu, and figuring
out the correct symbol version at configure time is probably more work
than this is worth. May revisit in the future.

Change-Id: I6c75e88bd3bd82a4b21e09a25780fe53aacb7d70

13 years agoremove old armv5 code
Johann [Tue, 19 Jul 2011 13:20:38 +0000 (09:20 -0400)]
remove old armv5 code

armv5 dequantizer is not referenced

Change-Id: Id1cc617dcee35ebd6a406816ec6aaa26e8bbc8ad

13 years agoMoved vp8_encode_bool into boolhuff.h
Scott LaVarnway [Tue, 19 Jul 2011 13:17:25 +0000 (09:17 -0400)]
Moved vp8_encode_bool into boolhuff.h

allowing the compiler to inline this function.  For real-time
encodes, this gave a boost of 1% to 2.5%, depending on the
speed setting.

Change-Id: I3929d176cca086b4261267b848419d5bcff21c02