profile/ivi/libvpx.git
12 years agoInclude path fix for building against Android NDK.
Fritz Koenig [Thu, 16 Feb 2012 20:38:17 +0000 (12:38 -0800)]
Include path fix for building against Android NDK.

cpu-features.h is not in the common paths, add
to the cflags for Android.

Change-Id: Icbafc7600d72f6b59ffb030f6ab80ee6860332bb

12 years agoSupport Android x86 NDK build
Makoto Kato [Sun, 12 Feb 2012 04:57:13 +0000 (13:57 +0900)]
Support Android x86 NDK build

On Android NDK, rand() is inlined function.  But, on our SSE optimization,
we need symbol for rand()

Change-Id: I42ab00e3255208ba95d7f9b9a8a3605ff58da8e1

12 years agoSimplify mb_to_x_edge calculation during mode decoding
Scott LaVarnway [Thu, 16 Feb 2012 18:36:46 +0000 (13:36 -0500)]
Simplify mb_to_x_edge calculation during mode decoding

Change-Id: Ibcb35c32bf24c1d241090e24c5e2320e4d3ba901

12 years agoMerge "decodemv cleanup/improvements"
Scott LaVarnway [Thu, 16 Feb 2012 17:33:59 +0000 (09:33 -0800)]
Merge "decodemv cleanup/improvements"

12 years agodecodemv cleanup/improvements
Scott LaVarnway [Thu, 16 Feb 2012 16:38:33 +0000 (11:38 -0500)]
decodemv cleanup/improvements

Removed unnecessary variables, unrolled functions, eliminated
unnecessary mv bounds checks and branches.

Change-Id: I02d034c70cd97b65025d59dd67c695e1db529f0b

12 years agoFix rtcd build process for Android.mk
Fritz Koenig [Wed, 15 Feb 2012 23:23:04 +0000 (15:23 -0800)]
Fix rtcd build process for Android.mk

Add a dependency so ndk-build will
generate the needed vpx_rtcd.h file.

Change-Id: I92c82e0996943dd0403c9956e1ba60e92e2837a9

12 years agoMerge "support changing resolution with vpx_codec_enc_config_set"
John Koleszar [Sat, 11 Feb 2012 00:18:00 +0000 (16:18 -0800)]
Merge "support changing resolution with vpx_codec_enc_config_set"

12 years agoMissed some variance casts
Johann [Fri, 10 Feb 2012 19:07:33 +0000 (11:07 -0800)]
Missed some variance casts

Change-Id: I9fb510f9421fb3c317a8e32e3058cee977ddf9fa

12 years agoMerge "max_sad check is not always implemented"
Johann [Fri, 10 Feb 2012 18:28:00 +0000 (10:28 -0800)]
Merge "max_sad check is not always implemented"

12 years agomax_sad check is not always implemented
Johann [Fri, 10 Feb 2012 00:19:10 +0000 (16:19 -0800)]
max_sad check is not always implemented

As an optimization some architectures use the max_sad argument to break
out early from the SAD. Pass in INT_MAX instead of 0 to prevent this.

Change-Id: I653c476834b97771578d63f231233d445388629d

12 years agoFix variance overflow
Johann [Thu, 9 Feb 2012 20:38:31 +0000 (12:38 -0800)]
Fix variance overflow

In the variance calculations the difference is summed and later squared.
When the sum exceeds sqrt(2^31) the value is treated as a negative when
it is shifted which gives incorrect results.

To fix this we cast the result of the multiplication as unsigned.

The alternative fix is to shift sum down by 4 before multiplying.
However that will reduce precision.

For 16x16 blocks the maximum sum is 65280 and sqrt(2^31) is 46340 (and
change).

PPC change is untested.

Change-Id: I1bad27ea0720067def6d71a6da5f789508cec265

12 years agoMerge "Add OS/2 supports"
John Koleszar [Wed, 8 Feb 2012 19:00:55 +0000 (11:00 -0800)]
Merge "Add OS/2 supports"

12 years agoAdd OS/2 supports
KO Myung-Hun [Fri, 3 Feb 2012 04:31:11 +0000 (13:31 +0900)]
Add OS/2 supports

Change-Id: I792d5236451905eb20a8ebe444ef5b2274e4f7a4

12 years agosupport changing resolution with vpx_codec_enc_config_set
John Koleszar [Wed, 8 Feb 2012 01:07:49 +0000 (17:07 -0800)]
support changing resolution with vpx_codec_enc_config_set

Allow the application to change the frame size during encoding. This
is only supported when not using lagged compress.

Change-Id: I89b585d703d5fd728a9e3dedf997f1b595d0db0f

12 years agoAlign internal mfqe framebuffer dimensions
John Koleszar [Tue, 7 Feb 2012 18:26:48 +0000 (10:26 -0800)]
Align internal mfqe framebuffer dimensions

MFQE postproc crashed with stream dimensions not a multiple of 16.
The buffer was memset unconditionally, so if the buffer allocation
fails we end up trying to write to NULL.

This patch traps an allocation failure with vpx_internal_error(),
and aligns the buffer dimensions to what vp8_yv12_alloc_frame_buffer()
expects.

Change-Id: I3915d597cd66886a24f4ef39752751ebe6425066

12 years agoFixed bug in 5-layer multi-layer encode
Adrian Grange [Mon, 6 Feb 2012 23:02:33 +0000 (15:02 -0800)]
Fixed bug in 5-layer multi-layer encode

The 5-layer encode must have a keyframe every 16 frames.

The KF flag was being reset after the encode of the first
frame, which it should not do for the 5-layer case
(mode=6).

Change-Id: I207d6e689d347fe3fd1075b97a817e82f7ad53b9

12 years agoMerge "Added 2 temporal patterns with new parameters"
Adrian Grange [Mon, 6 Feb 2012 22:45:33 +0000 (14:45 -0800)]
Merge "Added 2 temporal patterns with new parameters"

12 years agoMerge "Allow to skip highest-resolution encoding in multi-resolution encoder"
Yunqing Wang [Mon, 6 Feb 2012 21:58:11 +0000 (13:58 -0800)]
Merge "Allow to skip highest-resolution encoding in multi-resolution encoder"

12 years agoAllow to skip highest-resolution encoding in multi-resolution encoder
Yunqing Wang [Thu, 2 Feb 2012 19:27:04 +0000 (14:27 -0500)]
Allow to skip highest-resolution encoding in multi-resolution encoder

Sometimes, a user doesn't have enough bandwidth to send high-resolution
(i.e. HD) video even though the camera catches HD video. This change
allowed users to skip highest-resolution encoding by setting that level's
target bit rate to 0.

To test it, modify the following line in vp8_multi_resolution_encoder.c.
    unsigned int  target_bitrate[NUM_ENCODERS]={1400, 500, 100};
To skip the highest-resolution level, change it to
    unsigned int  target_bitrate[NUM_ENCODERS]={0, 500, 100};
To skip the first and second highest resolution levels, change it to
    unsigned int  target_bitrate[NUM_ENCODERS]={0, 0, 100};

This change also fixed a small problem in mapping, which slightly helped
quality and performance.

Change-Id: I977bae9a9fbfba85c8be4bd5af01539f2b84bc81

12 years agoMoved ref_frame_cost from MACROBLOCKD to MACROBLOCK
Scott LaVarnway [Thu, 2 Feb 2012 18:40:08 +0000 (13:40 -0500)]
Moved ref_frame_cost from MACROBLOCKD to MACROBLOCK

Change-Id: I05788522e9cde4322cfb12032483bdbf184bdf0b

12 years agoRemoved frames_till_alt_ref_frame from MACROBLOCKD
Scott LaVarnway [Thu, 2 Feb 2012 18:34:13 +0000 (13:34 -0500)]
Removed frames_till_alt_ref_frame from MACROBLOCKD

Change-Id: Ieb05270ac332a4cc38ec4b7b995fc0150e0fffdf

12 years agoRemoved frames_since_golden from MACROBLOCKD
Scott LaVarnway [Thu, 2 Feb 2012 18:28:41 +0000 (13:28 -0500)]
Removed frames_since_golden from MACROBLOCKD

Change-Id: I10efa441d663fceb6bc97a3bfad518cd3d9a5128

12 years agoMerge "Improved uv mv calculations in build inter predictor"
Scott LaVarnway [Tue, 31 Jan 2012 18:43:49 +0000 (10:43 -0800)]
Merge "Improved uv mv calculations in build inter predictor"

12 years agoBLOCKD structure cleanup
Scott LaVarnway [Fri, 20 Jan 2012 18:52:16 +0000 (13:52 -0500)]
BLOCKD structure cleanup

Removed redundancies.  All of the information can be
found in the MACROBLOCKD structure.

Change-Id: I7556392c6f67b43bef2a5e9932180a737466ef93

12 years agoRTCD: remove unimplemented vp8_short_walsh4x4_mmx
John Koleszar [Mon, 30 Jan 2012 20:55:45 +0000 (12:55 -0800)]
RTCD: remove unimplemented vp8_short_walsh4x4_mmx

This function does not exist.

Change-Id: I84b72fb17d572d5cccee92220467b84c15842d4d

12 years agoRTCD: finalize removal of old RTCD system
John Koleszar [Fri, 13 Jan 2012 00:55:44 +0000 (16:55 -0800)]
RTCD: finalize removal of old RTCD system

This is the final commit in the series converting to the new RTCD
system. It removes the encoder csystemdependent files and the remaining
global function pointers that didn't conform to the old RTCD system.

Change-Id: I9649706f1bb89f0cbf431ab0e3e7552d37be4d8e

12 years agoRTCD: add arnr functions
John Koleszar [Fri, 13 Jan 2012 00:55:44 +0000 (16:55 -0800)]
RTCD: add arnr functions

This commit continues the process of converting to the new RTCD
system. It removes the last of the VP8_ENCODER_RTCD struct references.

Change-Id: I2a44f52d7cccf5177e1ca98a028ead570d045395

12 years agoRTCD: add motion search functions
John Koleszar [Fri, 13 Jan 2012 00:55:44 +0000 (16:55 -0800)]
RTCD: add motion search functions

This commit continues the process of converting to the new RTCD
system.

Change-Id: Ia5828b7ecc80db55b21916704aa3d54cbb98f625

12 years agoRTCD: add block subtraction functions
John Koleszar [Fri, 13 Jan 2012 00:55:44 +0000 (16:55 -0800)]
RTCD: add block subtraction functions

This commit continues the process of converting to the new RTCD
system.

Change-Id: Id8a287fdd4bd050ea4452e1582ad85520f3081be

12 years agoRTCD: add quantizer functions
John Koleszar [Fri, 13 Jan 2012 00:55:44 +0000 (16:55 -0800)]
RTCD: add quantizer functions

This commit continues the process of converting to the new RTCD
system.

Change-Id: Iba9df4c03a508e51c37201c621be43523fae87d9

12 years agoRTCD: add FDCT functions
John Koleszar [Fri, 13 Jan 2012 00:55:44 +0000 (16:55 -0800)]
RTCD: add FDCT functions

This commit continues the process of converting to the new RTCD
system.

Change-Id: I3f9c07db65eb206f6363d21bdb80e871570da767

12 years agoRTCD: add variance functions
John Koleszar [Fri, 13 Jan 2012 00:55:44 +0000 (16:55 -0800)]
RTCD: add variance functions

This commit continues the process of converting to the new RTCD
system.

Change-Id: Ie5c1aa480637e98dc3918fb562ff45c37a66c538

12 years agoRTCD: add subpixel functions
John Koleszar [Fri, 13 Jan 2012 00:55:44 +0000 (16:55 -0800)]
RTCD: add subpixel functions

This commit continues the process of converting to the new RTCD
system.

Change-Id: I6c519ab61e4f4e0ebcc796f2df061f945c48cefe

12 years agoRTCD: add postproc functions
John Koleszar [Fri, 13 Jan 2012 00:55:44 +0000 (16:55 -0800)]
RTCD: add postproc functions

This commit continues the process of converting to the new RTCD
system.

Change-Id: If54eb5cb5d1b0cac6c4c0633a9e99c93ca860ba2

12 years agoRTCD: add recon functions
John Koleszar [Fri, 13 Jan 2012 00:55:44 +0000 (16:55 -0800)]
RTCD: add recon functions

This commit continues the process of converting to the new RTCD
system.

Change-Id: I9bfcf9bef65c3d4ba0fb9a3e1532bad1463a10d6

12 years agoRTCD: add remaining IDCT functions
John Koleszar [Fri, 13 Jan 2012 00:55:44 +0000 (16:55 -0800)]
RTCD: add remaining IDCT functions

This commit continues the process of converting to the new RTCD
system.

Change-Id: I03c4dbf30dfd3558b0e256ff9d3ff4c012aadc80

12 years agoRTCD: add loopfilter functions
John Koleszar [Fri, 13 Jan 2012 00:15:42 +0000 (16:15 -0800)]
RTCD: add loopfilter functions

This commit continues the process of converting to the new RTCD
system.

Change-Id: Ic8a4047d72ff3a54ec98977dd90e70c13213db71

12 years agoNew RTCD implementation
John Koleszar [Fri, 19 Aug 2011 18:06:00 +0000 (14:06 -0400)]
New RTCD implementation

This is a proof of concept RTCD implementation to replace the current
system of nested includes, prototypes, INVOKE macros, etc. Currently
only the decoder specific functions are implemented in the new system.
Additional functions will be added in subsequent commits.

Overview:
  RTCD "functions" are implemented as either a global function pointer
  or a macro (when only one eligible specialization available).
  Functions which have RTCD specializations are listed using a simple
  DSL identifying the function's base name, its prototype, and the
  architecture extensions that specializations are available for.

Advantages over the old system:
  - No INVOKE macros. A call to an RTCD function looks like an ordinary
    function call.
  - No need to pass vtables around.
  - If there is only one eligible function to call, the function is
    called directly, rather than indirecting through a function pointer.
  - Supports the notion of "required" extensions, so in combination with
    the above, on x86_64 if the best function available is sse2 or lower
    it will be called directly, since all x86_64 platforms implement
    sse2.
  - Elides all references to functions which will never be called, which
    could reduce binary size. For example if sse2 is required and there
    are both mmx and sse2 implementations of a certain function, the
    code will have no link time references to the mmx code.
  - Significantly easier to add a new function, just one file to edit.

Disadvantages:
  - Requires global writable data (though this is not a new requirement)
  - 1 new generated source file.

Change-Id: Iae6edab65315f79c168485c96872641c5aa09d55

12 years agoMerge Duclair release into master branch
John Koleszar [Fri, 27 Jan 2012 22:08:27 +0000 (14:08 -0800)]
Merge Duclair release into master branch

Change-Id: Ibf577972e8cd10488d44385ff74f136a07466c0c

12 years agoMerge "Hook up VP8D_GET_LAST_REF_USED"
John Koleszar [Fri, 27 Jan 2012 19:31:35 +0000 (11:31 -0800)]
Merge "Hook up VP8D_GET_LAST_REF_USED"

12 years agoUpdate CHANGELOG for v1.0.0 (Duclair) release
John Koleszar [Mon, 23 Jan 2012 17:21:55 +0000 (09:21 -0800)]
Update CHANGELOG for v1.0.0 (Duclair) release

Change-Id: I64472f717e5ef3672e1032b7ee24e73c4d0fff1f

12 years agoUpdate AUTHORS
John Koleszar [Mon, 23 Jan 2012 17:19:06 +0000 (09:19 -0800)]
Update AUTHORS

Change-Id: I5b0578f126308b4ec65d72553cc247b8e29c21a9

12 years agoUpdate .mailmap
John Koleszar [Mon, 23 Jan 2012 17:18:21 +0000 (09:18 -0800)]
Update .mailmap

Change-Id: Ie7d94a884c81fab4d5dc48833a57ec2283e61fc2

12 years agoHook up VP8D_GET_LAST_REF_USED
John Koleszar [Fri, 27 Jan 2012 18:13:20 +0000 (10:13 -0800)]
Hook up VP8D_GET_LAST_REF_USED

Commit 892e23a5b introduced support for the VP8D_GET_LAST_REF_USED,
but missed the mapping of the control id to the underlying function,
so it was unavailable to applications.

In addition, the underlying function vp8_references_buffer() is
moved from common/postproc.c to decoder/onyxd_if.c as postproc.c is
not built in all configurations.

Change-Id: I426dd254e7e6c4c061b70d729b69a6c384ebbe44

12 years agoAdded 2 temporal patterns with new parameters
Adrian Grange [Fri, 27 Jan 2012 00:50:15 +0000 (16:50 -0800)]
Added 2 temporal patterns with new parameters

Added new 2 and 3 layer prediction frame patterns to
vp8_scalable_patterns.c and modified the coding
parameters.

Change-Id: I18798fd7326a79d2ad1e1d5b6c26f5516b6d247f

12 years agoMerge changes I17e1a348,Iad710941
John Koleszar [Thu, 26 Jan 2012 22:33:28 +0000 (14:33 -0800)]
Merge changes I17e1a348,Iad710941

* changes:
  Correct clamping in use of vp8_find_near_mvs()
  Revert "Multithreaded encoder, late sync loopfilter"

12 years agoCorrect clamping in use of vp8_find_near_mvs()
John Koleszar [Wed, 25 Jan 2012 22:55:49 +0000 (14:55 -0800)]
Correct clamping in use of vp8_find_near_mvs()

Commit e06c242ba introduced a change to call vp8_find_near_mvs() only
once instead of once per reference frame by observing that the only
effect that the frame had was on the bias applied to the motion
vector. By keeping track of the sign_bias value, the mv to use could
be flip-flopped by multiplying its components by -1.

This behavior was subtley wrong in the case when clamping was applied
to the motion vectors found by vp8_find_near_mvs(). A motion vector
could be in-bounds with one sign bias, but out of bounds after
inverting the sign, or vice versa. The clamping must match that done
by the decoder.

This change modifies vp8_find_near_mvs() to remove the clamping from
that function. The vp8_pick_inter_mode() and vp8_rd_pick_inter_mode()
functions instead track the correctly clamped values for both bias
values, switching between them by simple assignment. The common
clamping and inversion code is in vp8_find_near_mvs_bias()

Change-Id: I17e1a348d1643497eca0be232e2fbe2acf8478e1

12 years agoRename save_neon_reg.asm as save_reg_neon.asm
Attila Nagy [Thu, 26 Jan 2012 07:42:15 +0000 (09:42 +0200)]
Rename save_neon_reg.asm as save_reg_neon.asm

Easier to filter out all NEON asm.

Change-Id: I0022dae8321a9608e864b09d4181414c5fff4610

12 years agoRevert "Multithreaded encoder, late sync loopfilter"
John Koleszar [Tue, 24 Jan 2012 23:32:08 +0000 (15:32 -0800)]
Revert "Multithreaded encoder, late sync loopfilter"

This commit is incomplete, as it does not synchronize the loop filter
before returning a handle to the reconstructed frame in
vpx_codec_get_preview_frame(), which can cause (false?) failures
when running the test_reconstruct_buffer test.

This may be related to a bug that does cause visible artifacts, which
is also under investigation.

This reverts commit 380d64ecb19984a1466e727244a41445ae919060.

Change-Id: Iad710941e7731d44fc2bde63bc63d6763cc4629e

12 years agoMerge "Disconnect ARM tgt_isa from dsp extensions"
Fritz Koenig [Mon, 23 Jan 2012 19:13:33 +0000 (11:13 -0800)]
Merge "Disconnect ARM tgt_isa from dsp extensions"

12 years agoImproved uv mv calculations in build inter predictor
Scott LaVarnway [Mon, 23 Jan 2012 16:34:43 +0000 (11:34 -0500)]
Improved uv mv calculations in build inter predictor

Changed calculations to use shifts instead of if-then-else.
Eliminates branches.

Change-Id: I11b75e8bb305301ffd9cb577fb7df059a3cf9ea4

12 years agoDisconnect ARM tgt_isa from dsp extensions
Fritz Koenig [Thu, 19 Jan 2012 23:18:31 +0000 (15:18 -0800)]
Disconnect ARM tgt_isa from dsp extensions

A processor with ARMv7 instructions does not
necessarily have NEON dsp extensions.  This CL
has the added side effect of allowing the ability
to enable/disable the dsp extensions cleanly.

Change-Id: Ie1e879b8fe131885bc3d4138a0acc9ffe73a36df

12 years agoMerge "Overhauling the thresholds and mixing proportions for mfqe postprocessor."
Deb Mukherjee [Fri, 20 Jan 2012 16:45:42 +0000 (08:45 -0800)]
Merge "Overhauling the thresholds and mixing proportions for mfqe postprocessor."

12 years agoOverhauling the thresholds and mixing proportions for mfqe postprocessor.
Deb Mukherjee [Fri, 20 Jan 2012 03:06:55 +0000 (19:06 -0800)]
Overhauling the thresholds and mixing proportions for mfqe postprocessor.

Makes the thresholds for the multiframe quality enhancement module
depend on the difference between the base quantizers. Also modifies
the mixing function to weigh the current low quality frame less if
the difference in quantizer is large. With the above modifications
mfqe works well for both scalable patterns as well as low quality
key frames.

Change-Id: If24e94f63f3c292f939eea94f627e7ebfb27cb75

12 years agoMerge "Simplify an assignment statement"
Jeff Faust [Thu, 19 Jan 2012 05:14:51 +0000 (21:14 -0800)]
Merge "Simplify an assignment statement"

12 years agoMerge "Remove duplicate line in parameter parsing."
John Koleszar [Thu, 19 Jan 2012 00:04:51 +0000 (16:04 -0800)]
Merge "Remove duplicate line in parameter parsing."

12 years agoMerge "get_plane_pointers: use u/v planes consistently"
John Koleszar [Wed, 18 Jan 2012 22:22:55 +0000 (14:22 -0800)]
Merge "get_plane_pointers: use u/v planes consistently"

12 years agoget_plane_pointers: use u/v planes consistently
John Koleszar [Wed, 18 Jan 2012 20:50:06 +0000 (12:50 -0800)]
get_plane_pointers: use u/v planes consistently

The prior commit accidentally used the u plane where it should have
used the v plane.

Change-Id: Ib6c8443b99061536389f05ac25b8e0a307ace637

12 years agoSimplify an assignment statement
Jeff Faust [Wed, 18 Jan 2012 02:15:05 +0000 (18:15 -0800)]
Simplify an assignment statement

Separated a double assignment that looked suspiciously like an
assignment and equality typo.

Change-Id: I7813979e9d7ea2539afb3c8ae6074f9df5ebdf52

12 years agoMerge "Add makefile for building libvpx for Android."
Fritz Koenig [Wed, 18 Jan 2012 19:28:40 +0000 (11:28 -0800)]
Merge "Add makefile for building libvpx for Android."

12 years agoMerge "vp8d - valgrind warnings in mb post processor"
Jim Bankoski [Wed, 18 Jan 2012 19:12:37 +0000 (11:12 -0800)]
Merge "vp8d - valgrind warnings in mb post processor"

12 years agoAdd makefile for building libvpx for Android.
Fritz Koenig [Fri, 6 Jan 2012 19:50:05 +0000 (11:50 -0800)]
Add makefile for building libvpx for Android.

Android.mk file for using the Android NDK build
system to compile. Adds option for SDK path to
use the compiler that comes with android for testing
compiler compliance.

Change-Id: I5fd17cb76e3ed631758d3f392e62ae1a050d0d10

12 years agoMerge changes I1ebe76aa,Ia079b52b
John Koleszar [Wed, 18 Jan 2012 17:30:46 +0000 (09:30 -0800)]
Merge changes I1ebe76aa,Ia079b52b

* changes:
  rdopt/pickinter: factor out some common setup
  rdopt: remove unused frame_lf_or_gf

12 years agoMerge "Modifying the base q propagation in the mfqe post processing filter in a way...
Deb Mukherjee [Wed, 18 Jan 2012 17:15:24 +0000 (09:15 -0800)]
Merge "Modifying the base q propagation in the mfqe post processing filter in a way such that when there is a single bad frame, the post-processing is applied not only to just that frame but a few subsequent frames as well."

12 years agovp8d - valgrind warnings in mb post processor
Jim Bankoski [Wed, 18 Jan 2012 01:27:39 +0000 (17:27 -0800)]
vp8d - valgrind warnings in mb post processor

Solved by extending the border in the postproc buffer as necessary

Change-Id: Ic3f61397fe5bc8e4db6fc78050b0b160bd0aee86

12 years agoRemove duplicate line in parameter parsing.
Fritz Koenig [Wed, 18 Jan 2012 01:11:32 +0000 (17:11 -0800)]
Remove duplicate line in parameter parsing.

resize_down_thresh was parsed and set twice.

Change-Id: I2685a6c3c825371f79ae94d305bcb50185a12dac

12 years agoModifying the base q propagation in the mfqe post processing
Deb Mukherjee [Tue, 17 Jan 2012 17:23:28 +0000 (09:23 -0800)]
Modifying the base q propagation in the mfqe post processing
filter in a way such that when there is a single bad frame, the
post-processing is applied not only to just that frame but a
few subsequent frames as well.

Change-Id: Iba5d9896eed77244eb76b4a74692a93f8ecff634

12 years agoFixed bugs in multi-layer code related to changing params
Adrian Grange [Fri, 13 Jan 2012 22:09:40 +0000 (14:09 -0800)]
Fixed bugs in multi-layer code related to changing params

When running multi-layer (ML) encodes and dynamically
changing coding parameters on the fly (e.g. frame
duration/rate, bandwidths allocated to each layer)
the encoder would not produce sensible output.

In certain cases the rate targeting would be
hideously inaccurate.

These fixes make it possible to change these coding
parameters correctly and to maintain accurate control
of the rate targeting.

I also added the specification of the input timebase
into the test program, vp8_scalable_patterns.c.

Patch 2: Moved declaration to appease MS compiler)

Change-Id: Ic8bb5a16daa924bb64974e740696e040d07ae363

12 years agordopt/pickinter: factor out some common setup
John Koleszar [Wed, 11 Jan 2012 22:38:58 +0000 (14:38 -0800)]
rdopt/pickinter: factor out some common setup

Add new get_predictor_pointers() and get_reference_search_order()
functions for code shared between the two implementations.

Change-Id: I1ebe76aa8f168b1f5cfabc00d05d8f19a0d4d207

12 years agordopt: remove unused frame_lf_or_gf
John Koleszar [Wed, 11 Jan 2012 21:02:19 +0000 (13:02 -0800)]
rdopt: remove unused frame_lf_or_gf

This flag was set but unused.

Change-Id: Ia079b52b88ffbe3b16fdbde4b84e2b87304eaa13

12 years agoAllowing the mfqe post-processing filter to be used in conjunction
Deb Mukherjee [Tue, 10 Jan 2012 00:48:45 +0000 (16:48 -0800)]
Allowing the mfqe post-processing filter to be used in conjunction
with deblock or demacroblock filters. When --mfqe is used together
with --demacroblock or --deblock, mfqe is applied first and then
demacroblock/deblock is applied to the mfqe result.

Change-Id: Id83ee01f1b4a33a116f071dcf26d59c7f3497c32

12 years agoMerge "fix: roundoff initializer is not a constant"
John Koleszar [Tue, 10 Jan 2012 21:33:26 +0000 (13:33 -0800)]
Merge "fix: roundoff initializer is not a constant"

12 years agoMerge "Remove iwmmx target."
John Koleszar [Tue, 10 Jan 2012 20:32:35 +0000 (12:32 -0800)]
Merge "Remove iwmmx target."

12 years agofix: roundoff initializer is not a constant
James Berry [Tue, 10 Jan 2012 18:37:35 +0000 (13:37 -0500)]
fix: roundoff initializer is not a constant

precision used in initialization of roundoff is not a constant
updated to use #define MFQE_PRECISION 4

Change-Id: If2fc3d3d633d58a7f4ab34d258c232ec1e5f0a79

12 years agoRemove iwmmx target.
Fritz Koenig [Tue, 10 Jan 2012 19:16:37 +0000 (11:16 -0800)]
Remove iwmmx target.

No optimized code present for target.

Change-Id: If99bb37491b15c1093e8851430c060cb2466898c

12 years agovp8d - function to check if a reference frame is used.
Jim Bankoski [Mon, 9 Jan 2012 17:23:34 +0000 (09:23 -0800)]
vp8d - function to check if a reference frame is used.

Change-Id: Id683b4d7f46ffa99145fc4b824c7232ab4182f21

12 years agoRemove armv4 optimized scaler code.
Fritz Koenig [Mon, 9 Jan 2012 19:42:30 +0000 (11:42 -0800)]
Remove armv4 optimized scaler code.

Code was from a time when the compiler was
not good at optimizing.  Compilers are better
and instruction sets have increased to make
this code obsolete.

Change-Id: I8d261371685247465eb4aa00bdcecc9fe1784219

12 years agoMerge "Multiframe quality enhancement postprocessing"
Deb Mukherjee [Mon, 9 Jan 2012 18:23:24 +0000 (10:23 -0800)]
Merge "Multiframe quality enhancement postprocessing"

12 years agoMerge "Remove symbian target and associated files."
Johann [Mon, 9 Jan 2012 18:08:06 +0000 (10:08 -0800)]
Merge "Remove symbian target and associated files."

12 years agoRemove symbian target and associated files.
Fritz Koenig [Fri, 6 Jan 2012 23:55:10 +0000 (15:55 -0800)]
Remove symbian target and associated files.

These targets are no longer maintained.

Change-Id: I923103006c439849fc015c1ac45ee7a5443ebc6d

12 years agoMerge "Reduce the default kf_max_dist to 128."
James Zern [Fri, 6 Jan 2012 20:32:07 +0000 (12:32 -0800)]
Merge "Reduce the default kf_max_dist to 128."

12 years agoMerge "Reduced the size of Y1Dequant and friends to [128][2]"
John Koleszar [Fri, 6 Jan 2012 19:59:06 +0000 (11:59 -0800)]
Merge "Reduced the size of Y1Dequant and friends to [128][2]"

12 years agoReduce the default kf_max_dist to 128.
Ralph Giles [Thu, 5 Jan 2012 16:39:38 +0000 (10:39 -0600)]
Reduce the default kf_max_dist to 128.

The default maximum keyframe interval is 9999, or over five minutes
at normal video rates. When the encoder produces streams with such
a long interval seeking (with correct output) is more expensive,
and live streaming is impossible.

Of course the encoding application should set this parameter
based on its knowledge of the intended use of the stream, but
reducing the default gives better results for applications
which do not.

Change-Id: I900b15d74ce72ecc3ade4d43f758c5cf97a2098a

12 years agoReduced the size of Y1Dequant and friends to [128][2]
Scott LaVarnway [Wed, 4 Jan 2012 16:56:50 +0000 (11:56 -0500)]
Reduced the size of Y1Dequant and friends to [128][2]

This patch removes the local copies of the dequantize
constants and implements John's idea as described
in "Make a local copy of the dequantized data" commit.

Change-Id: Ic6b7d681f00bf63263f71ff1e39ab2f80729e8b2

12 years agoMerge "Use number instead of string for eabi_attribute."
Johann [Thu, 5 Jan 2012 20:32:23 +0000 (12:32 -0800)]
Merge "Use number instead of string for eabi_attribute."

12 years agoMultiframe quality enhancement postprocessing
Deb Mukherjee [Tue, 20 Dec 2011 22:50:31 +0000 (14:50 -0800)]
Multiframe quality enhancement postprocessing

Adds a multiframe postprocessing module to enhance the quality of
certain frames that are coded at lower quality than preceding frames.
The module can be invoked from the commandline by use of the --mfqe
option, and will be most beneficial for enhancing the quality of
frames decoded using scalable patterns.

Uses the vp8_variance_var16x16 and vp8_variance_sad16x16 function
pointers to compute SAD and Variance of blocks.

Change-Id: Id73d2a6e3572d07f9f8e36bbce00a4fc5ffd8961

12 years agoMerge "Improve SSSE3 fast quantizer function"
Johann [Thu, 5 Jan 2012 18:09:39 +0000 (10:09 -0800)]
Merge "Improve SSSE3 fast quantizer function"

12 years agoMerge "Removed unused diff buffer"
Scott LaVarnway [Thu, 5 Jan 2012 17:06:28 +0000 (09:06 -0800)]
Merge "Removed unused diff buffer"

12 years agoMerge "SSE2 optimizations for vp8_build_intra_predictors_mby{,_s}()"
Scott LaVarnway [Thu, 5 Jan 2012 17:05:19 +0000 (09:05 -0800)]
Merge "SSE2 optimizations for vp8_build_intra_predictors_mby{,_s}()"

12 years agoMerge "Improved sse2 version of simple loopfilter"
Scott LaVarnway [Wed, 4 Jan 2012 21:26:13 +0000 (13:26 -0800)]
Merge "Improved sse2 version of simple loopfilter"

12 years agoUse number instead of string for eabi_attribute.
Fritz Koenig [Wed, 4 Jan 2012 18:54:01 +0000 (10:54 -0800)]
Use number instead of string for eabi_attribute.

Current android ndk compiler does not recognize
strings for attributes.  Numerical equivalents
can be found in the "ARM IHI 0045C" document.

Change-Id: I72de85b8949dc0ae5212af604fff1d5a91a828ea

12 years agoMerge "Make a local copy of the dequantized data"
Scott LaVarnway [Wed, 4 Jan 2012 15:50:13 +0000 (07:50 -0800)]
Merge "Make a local copy of the dequantized data"

12 years agoMerge "Improve vp8cx_init_quantizer()"
Yunqing Wang [Wed, 4 Jan 2012 14:22:15 +0000 (06:22 -0800)]
Merge "Improve vp8cx_init_quantizer()"

12 years agoMerge "Remove useless g_common.h"
Scott LaVarnway [Tue, 3 Jan 2012 17:48:35 +0000 (09:48 -0800)]
Merge "Remove useless g_common.h"

12 years agoImprove SSSE3 fast quantizer function
Yunqing Wang [Thu, 29 Dec 2011 17:05:50 +0000 (12:05 -0500)]
Improve SSSE3 fast quantizer function

Simplified the EOB calculation in the function.

Change-Id: I7422f18be40ae270358f5cb0811d66e64436b56f

12 years agoRemove unused MACROBLOCK member vector_range
John Koleszar [Wed, 28 Dec 2011 22:58:38 +0000 (14:58 -0800)]
Remove unused MACROBLOCK member vector_range

Change-Id: Ie2dc0d72363ff38e0f71b59f6e2d1a2d70c5266b

12 years agoRemove unused BLOCK member force_empty
John Koleszar [Wed, 28 Dec 2011 21:57:51 +0000 (13:57 -0800)]
Remove unused BLOCK member force_empty

Change-Id: I72ed49ce14ca0124dd0d31bfcf4c7630a4681587

12 years agoImprove vp8cx_init_quantizer()
Yunqing Wang [Wed, 28 Dec 2011 18:55:55 +0000 (13:55 -0500)]
Improve vp8cx_init_quantizer()

Except zrun_zbin_boost, 15 AC values are the same for all other
parameters. Removed unneccessary calculation.

Change-Id: I6101c0fe8080bd2b4387c3b04d7ddedbf6010409

12 years agoMerge "Add missing includes for multi-res"
John Koleszar [Thu, 22 Dec 2011 21:01:19 +0000 (13:01 -0800)]
Merge "Add missing includes for multi-res"

12 years agoMerge "Remove unnecessary ternary constructs"
John Koleszar [Thu, 22 Dec 2011 21:01:05 +0000 (13:01 -0800)]
Merge "Remove unnecessary ternary constructs"