Fritz Koenig [Wed, 18 Jan 2012 19:28:40 +0000 (11:28 -0800)]
Merge "Add makefile for building libvpx for Android."
Jim Bankoski [Wed, 18 Jan 2012 19:12:37 +0000 (11:12 -0800)]
Merge "vp8d - valgrind warnings in mb post processor"
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
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
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."
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
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
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
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
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
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
John Koleszar [Tue, 10 Jan 2012 21:33:26 +0000 (13:33 -0800)]
Merge "fix: roundoff initializer is not a constant"
John Koleszar [Tue, 10 Jan 2012 20:32:35 +0000 (12:32 -0800)]
Merge "Remove iwmmx target."
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
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
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
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
Deb Mukherjee [Mon, 9 Jan 2012 18:23:24 +0000 (10:23 -0800)]
Merge "Multiframe quality enhancement postprocessing"
Johann [Mon, 9 Jan 2012 18:08:06 +0000 (10:08 -0800)]
Merge "Remove 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
James Zern [Fri, 6 Jan 2012 20:32:07 +0000 (12:32 -0800)]
Merge "Reduce the default kf_max_dist to 128."
John Koleszar [Fri, 6 Jan 2012 19:59:06 +0000 (11:59 -0800)]
Merge "Reduced the size of Y1Dequant and friends to [128][2]"
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
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
Johann [Thu, 5 Jan 2012 20:32:23 +0000 (12:32 -0800)]
Merge "Use number instead of string for eabi_attribute."
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
Johann [Thu, 5 Jan 2012 18:09:39 +0000 (10:09 -0800)]
Merge "Improve SSSE3 fast quantizer function"
Scott LaVarnway [Thu, 5 Jan 2012 17:06:28 +0000 (09:06 -0800)]
Merge "Removed unused diff buffer"
Scott LaVarnway [Thu, 5 Jan 2012 17:05:19 +0000 (09:05 -0800)]
Merge "SSE2 optimizations for vp8_build_intra_predictors_mby{,_s}()"
Scott LaVarnway [Wed, 4 Jan 2012 21:26:13 +0000 (13:26 -0800)]
Merge "Improved sse2 version of simple loopfilter"
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
Scott LaVarnway [Wed, 4 Jan 2012 15:50:13 +0000 (07:50 -0800)]
Merge "Make a local copy of the dequantized data"
Yunqing Wang [Wed, 4 Jan 2012 14:22:15 +0000 (06:22 -0800)]
Merge "Improve vp8cx_init_quantizer()"
Scott LaVarnway [Tue, 3 Jan 2012 17:48:35 +0000 (09:48 -0800)]
Merge "Remove useless g_common.h"
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
John Koleszar [Wed, 28 Dec 2011 22:58:38 +0000 (14:58 -0800)]
Remove unused MACROBLOCK member vector_range
Change-Id: Ie2dc0d72363ff38e0f71b59f6e2d1a2d70c5266b
John Koleszar [Wed, 28 Dec 2011 21:57:51 +0000 (13:57 -0800)]
Remove unused BLOCK member force_empty
Change-Id: I72ed49ce14ca0124dd0d31bfcf4c7630a4681587
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
John Koleszar [Thu, 22 Dec 2011 21:01:19 +0000 (13:01 -0800)]
Merge "Add missing includes for multi-res"
John Koleszar [Thu, 22 Dec 2011 21:01:05 +0000 (13:01 -0800)]
Merge "Remove unnecessary ternary constructs"
John Koleszar [Thu, 22 Dec 2011 21:00:23 +0000 (13:00 -0800)]
Merge "Remove legacy integer types"
John Koleszar [Thu, 22 Dec 2011 20:59:47 +0000 (12:59 -0800)]
Merge "Use lookup tables for mode_check_freq"
John Koleszar [Thu, 22 Dec 2011 18:31:21 +0000 (10:31 -0800)]
Merge "Use lookup tables for thresh_mult"
John Koleszar [Thu, 22 Dec 2011 18:26:45 +0000 (10:26 -0800)]
Add missing includes for multi-res
Makes the distribution tree (built with 'make dist') buildable with
--enable-install-srcs --enable-multi-res-encoding
Change-Id: If2ea7632f7b26615196e9abcfaa34618cc50112a
John Koleszar [Thu, 22 Dec 2011 00:11:31 +0000 (16:11 -0800)]
Remove unnecessary ternary constructs
The code had a number of constructs like (condition)?1:0,
which is redundant with C's semantics. In the cases where a boolean
operator was used in the condition, simply remove the ternary part.
Otherwise adjust the surrounding expression to remove the condition
(eg, for rounding up. See pickinter.c and rdopt.c)
Change-Id: Icb2372defa3783cf31857d90b2630d06b2c7e1be
John Koleszar [Wed, 21 Dec 2011 22:21:29 +0000 (14:21 -0800)]
Remove legacy integer types
Remove BOOL, INTn, UINTn, etc, in favor of C99-style fixed width
types.
Change-Id: I396636212fb5edd6b347d43cc940186d8cd1e7b5
John Koleszar [Tue, 20 Dec 2011 19:17:42 +0000 (11:17 -0800)]
Use lookup tables for mode_check_freq
Mostly cosmetic. Trying for a more compact representation of speed
selection thresholds.
Change-Id: I339e7840049b91ad569aabbdc9c702a496110d3b
John Koleszar [Tue, 20 Dec 2011 19:17:42 +0000 (11:17 -0800)]
Use lookup tables for thresh_mult
Mostly cosmetic. Trying for a more compact representation of speed
selection thresholds.
Change-Id: Icaebea632c7bb71ca8e07b4def04a046d4515e27
John Koleszar [Thu, 22 Dec 2011 17:36:11 +0000 (09:36 -0800)]
Merge "Remove opaque pointer VP8D_PTR"
John Koleszar [Wed, 21 Dec 2011 23:02:14 +0000 (15:02 -0800)]
Remove useless g_common.h
This file declared a bunch of nonexistent, unreferenced global
function pointers.
Change-Id: Ic26bb8c7712deba754c49fc01f383b53afc9e728
John Koleszar [Wed, 21 Dec 2011 00:54:54 +0000 (16:54 -0800)]
Remove opaque pointer VP8D_PTR
Use an opaque struct rather than typecasting through VP8D_PTR, an int*.
Change-Id: Ia260b7d53d7e0950cfa1e00f4ecead1099bd3b87
James Zern [Wed, 21 Dec 2011 21:37:22 +0000 (13:37 -0800)]
squash some signed/unsigned comparison warnings
Change-Id: Ifc64cf990ae04d77934da3324d0afb3993f061e7
Johann [Wed, 21 Dec 2011 20:39:39 +0000 (12:39 -0800)]
Make a local copy of the dequantized data
Multithreaded encoding was breaking at low bitrates
Please review/comment. Not sure if this is the best fix.
Change-Id: I87468c765372593fd865bc82e25121ebb8ca6af2
John Koleszar [Wed, 21 Dec 2011 19:00:47 +0000 (11:00 -0800)]
Remove unreferenced includes
These files are legacy and have no current references.
Change-Id: I38224961fafeb33bc3eb6150bb0c2249ccbb4f60
John Koleszar [Wed, 21 Dec 2011 17:59:22 +0000 (09:59 -0800)]
Merge "Remove opaque pointer VP8_PTR"
Scott LaVarnway [Wed, 21 Dec 2011 17:01:25 +0000 (12:01 -0500)]
Improved sse2 version of simple loopfilter
Change-Id: Iae406d16fab5bace47fbcf5ef7ed021f08af159d
John Koleszar [Wed, 21 Dec 2011 17:20:21 +0000 (09:20 -0800)]
Merge "tokenizer: use correct block type context in stuff1st_order_b"
John Koleszar [Wed, 21 Dec 2011 00:54:54 +0000 (16:54 -0800)]
Remove opaque pointer VP8_PTR
Use an opaque struct rather than typecasting through VP8_PTR, an int*.
Change-Id: I5ed4d9238ba2e8d51bfa07a8da87a2eb4c8fa43a
John Koleszar [Mon, 19 Dec 2011 21:51:11 +0000 (13:51 -0800)]
remove armv6 files from armv5 build
Make bilinearfilter_arm.c compiled only when HAVE_ARMV6, as its definitions
are v6 only. This is normally not a problem for static builds as the file
is elided at link time, but this was not being done properly for the
--enable-shared --enable-pic build.
Change-Id: Ic800a7cde751f74f22555c5b247f99f9df5e550d
Johann [Mon, 19 Dec 2011 18:11:23 +0000 (10:11 -0800)]
Merge "Avoid heap allocation of firstpass stats"
John Koleszar [Mon, 19 Dec 2011 17:50:12 +0000 (09:50 -0800)]
Merge "fix: make sure ss_err is large enough"
Yunqing Wang [Mon, 19 Dec 2011 16:42:20 +0000 (08:42 -0800)]
Merge "Merge mr_pick_inter_mode and pick_inter_mode"
Yunqing Wang [Fri, 16 Dec 2011 21:50:29 +0000 (16:50 -0500)]
Merge mr_pick_inter_mode and pick_inter_mode
Merged multi-resolution motion estimation with regular motion
estimation function in order to remove duplicated part. This
caused slight changes in multi-resulotion encoder quality &
performance.
Change-Id: Ib4ecc7acfebfe5eea959b5b91febae6db7b95fd1
James Berry [Fri, 16 Dec 2011 22:43:55 +0000 (17:43 -0500)]
fix: make sure ss_err is large enough
increase size of ss_err by one to make
sure there is room for 64 elements.
Change-Id: I355cb8c499aa7da3b9675f2326a8d25a74bb88d2
John Koleszar [Fri, 16 Dec 2011 19:26:53 +0000 (11:26 -0800)]
Avoid heap allocation of firstpass stats
The total_stats, this_frame_stats, and total_left_stats structures
were previously create by a heap allocation, despite being of fixed
size. These structures were allocated and deallocated during
{de,}allocate_compressor_data, which is reinvoked whenever the frame
size changes. Unfortunately, this clobbers the total_stats and
total_left_stats data.
Historically, these were variable size at one time, due to the first
pass motion map, which necessitated their being created by a unique
heap allocation. However, this bug with the total_stats being
clobbered has probably been present since that initial implementation.
These structures are instead moved to be stored within the struct
twopass_rc directly, rather than being heap allocated separately.
Change-Id: I7f9e519e25c58b92969071f0e99fa80307e0682b
Scott LaVarnway [Fri, 16 Dec 2011 18:48:01 +0000 (13:48 -0500)]
Fixed mb_skip_coeff bug
When mb_skip_coeff is set, the idct is not necessary. Prior
to this patch, the code would call idcts based on leftover
eob information. This patch will now skip the idct for
SPLIT_MV and clear out the eobs for B_PRED, forcing the idct
to be skipped.
Change-Id: If5b0d2ed3ebd07789d30ec5160df927485fcaa17
Scott LaVarnway [Thu, 15 Dec 2011 19:23:36 +0000 (14:23 -0500)]
Moved dequant idct into common
These functions are now used by the encoder.
This is WIP with the goal of creating a common idct/add for
the encoder and decoder. A boost of 1.8% was seen for
the HD rt test clip used.
[Tero] Added needed changes to ARM side.
Change-Id: Ibbb8000be09034203d7adffc457d3c3f8b06a5bf
Yunqing Wang [Thu, 15 Dec 2011 17:53:25 +0000 (09:53 -0800)]
Merge "Only call vp8_find_near_mvs() once for each macroblock"
Yunqing Wang [Wed, 14 Dec 2011 20:35:04 +0000 (15:35 -0500)]
Only call vp8_find_near_mvs() once for each macroblock
While doing motion search on a macroblock, we usually call
vp8_find_near_mvs once per reference frame. Actually, for
different reference frames, the only difference in calculating
these near_mvs is they may have different sign_bias, which
causes a sign change in resulting near_mvs. In this change, we
only do find_near_mvs for the first reference frame. For other
reference frames, only need to adjust the near_mvs according to
that reference frame's sign_bias value.
Change-Id: I661394b49c6ad79fed7d0f2eb2be239b9c56f149
Yunqing Wang [Thu, 15 Dec 2011 13:38:57 +0000 (05:38 -0800)]
Merge "Force realtime version 1 streams to only use simple loopfilter"
John Koleszar [Thu, 15 Dec 2011 00:28:13 +0000 (16:28 -0800)]
Merge "Avoid multiple test for same lvl in auto filter lvl pick"
John Koleszar [Wed, 14 Dec 2011 20:10:06 +0000 (12:10 -0800)]
Merge "add check to ensure that cq_level falls within min and max q"
Johann [Wed, 14 Dec 2011 19:54:22 +0000 (11:54 -0800)]
Merge "Use xcode 4.2"
Johann [Wed, 14 Dec 2011 19:44:21 +0000 (11:44 -0800)]
Merge "Fix iOS conversion script"
John Koleszar [Wed, 14 Dec 2011 19:22:00 +0000 (11:22 -0800)]
Merge "fix: active_worst_quality could be set above 127"
Johann [Wed, 14 Dec 2011 19:11:03 +0000 (11:11 -0800)]
Use xcode 4.2
Allow targeting darwin11 / 10.7
Update arm paths for iPhoneOS 5.0
Change-Id: I057156349311ec66a163c4c1cea60dc5aeaaa492
James Berry [Wed, 7 Dec 2011 20:48:00 +0000 (15:48 -0500)]
add check to ensure that cq_level falls within min and max q
Add the notion of deferred validation of parameters. We don't want to
validate the cq_level at initialization time, because it won't have
been set via set_param() yet.
Change-Id: Ia1308395e8c10e0b1dc4e9af3a09b2bd6744cc30
Attila Nagy [Fri, 9 Dec 2011 12:54:41 +0000 (14:54 +0200)]
Avoid multiple test for same lvl in auto filter lvl pick
Sometimes same level is tested 2-3 times; store and reuse the
calculated error value.
Change-Id: Ia1c04a2568232edf9a5a62c4e2d8e8a50d85e00e
Attila Nagy [Thu, 8 Dec 2011 08:54:39 +0000 (10:54 +0200)]
Force realtime version 1 streams to only use simple loopfilter
...regardless of the speed settings.
Change-Id: I4b91ac7a7208efd690dfc69e175f8eb769b6ce03
John Koleszar [Tue, 13 Dec 2011 20:55:46 +0000 (12:55 -0800)]
Merge "vpx_integer.h: fix incorrect type emulation"
James Berry [Tue, 6 Dec 2011 18:08:44 +0000 (13:08 -0500)]
fix: active_worst_quality could be set above 127
add check to set active_worst_quality to 127 if it
is set above 127
Change-Id: I7db353d5c1b1c8516a116542b6ed21c0110bb512
John Koleszar [Tue, 13 Dec 2011 01:08:03 +0000 (17:08 -0800)]
tokenizer: use correct block type context in stuff1st_order_b
The fast-path for skipped MBs was not correctly respecting the
block type during update of the coefficient counts. Extracted
this from part of change I365cfb6ac636f19c545f682e3aeac185253abaef
Change-Id: I53d8cf0a00a98034b97b0ed3414b703bae74a739
Johann [Tue, 13 Dec 2011 18:42:02 +0000 (10:42 -0800)]
Merge "Fix incorrect PROC/ENDP match"
Johann [Tue, 13 Dec 2011 01:17:07 +0000 (17:17 -0800)]
Fix incorrect PROC/ENDP match
The conversion script was incorrectly matching
CONFIG_POSTPROC[_VISUALIZER] and generating an
incorrect vpx_config.asm
Match both PROC and ENDP on word boundaries
Change-Id: Ic2788c3b522d4ee0afc5223b72e1b09fb52645be
Yunqing Wang [Tue, 13 Dec 2011 18:39:44 +0000 (10:39 -0800)]
Merge "Align image buffer in multiple-resolution encoder"
Yunqing Wang [Thu, 8 Dec 2011 17:31:01 +0000 (12:31 -0500)]
Align image buffer in multiple-resolution encoder
Aligned the image buffer and stride to 32 bytes. This enables
calling of optimized scaler function in libyuv, and improves
the performance.
Tested libyuv scaler(x86 optimization) on Linux and Windows,
including: Linux 32/64bit, visual studio 32/64bit, Cygwin, and
MinGW32.
Also, fixed a wrong pointer in vpx_codec_encode().
Change-Id: Ibe97d7a0a745f82c43852fa4ed719be5a4db6abc
Johann [Tue, 13 Dec 2011 01:14:03 +0000 (17:14 -0800)]
Fix iOS conversion script
Mach-O prefixes function calls with _
Change-Id: I778c2ab91266887731a6a0316b42af7641826da4
Jim Bankoski [Mon, 12 Dec 2011 17:08:34 +0000 (09:08 -0800)]
Merge "vp8e - entropy stats per frame type"
Scott LaVarnway [Mon, 12 Dec 2011 16:06:55 +0000 (11:06 -0500)]
Removed unused diff buffer
Change-Id: I9211358cca89b1c4f84b53a202a63ecf9e79ae4c
Scott LaVarnway [Mon, 12 Dec 2011 14:40:28 +0000 (06:40 -0800)]
Merge "Improved mmx/sse2 versions of iwalsh"
Jim Bankoski [Sat, 10 Dec 2011 00:56:18 +0000 (16:56 -0800)]
vp8e - entropy stats per frame type
Change-Id: I4168eb6ea22ae541471738a7a3453e7d52059275
John Koleszar [Fri, 9 Dec 2011 19:54:36 +0000 (11:54 -0800)]
vpx_integer.h: fix incorrect type emulation
The previous definition of uintptr_t was incorrect on x64 with MSVC.
Also, the ARMV6 version of int_fast16_t was defined as unsigned for
some reason. Since the fast types are currently unused, just remove
them.
Change-Id: Idd73f77a989c77feedcb4a6802ae6bd37324ed40
Scott LaVarnway [Thu, 8 Dec 2011 19:37:59 +0000 (14:37 -0500)]
Improved mmx/sse2 versions of iwalsh
Removed unnecessary transposes.
Change-Id: I029fbaf8afafee34d54a4f3333c22023c15003c3
Johann [Wed, 7 Dec 2011 18:41:00 +0000 (10:41 -0800)]
Merge "Reduce mem copies in encoder loopfilter level picking"
Attila Nagy [Tue, 29 Nov 2011 11:48:02 +0000 (13:48 +0200)]
Reduce mem copies in encoder loopfilter level picking
Do the test filtering in the existing backup frame buffer instead of
the original. Copy the original data into extra buffer before doing
the filtering. This way there is no need to restore the original
unfiltered frame at the end of level picking process.
This came up in some discussions with Johann. Thanks!
Change-Id: I495f4301d983854673276c34ec0ddf9a9d622122
Yunqing Wang [Tue, 6 Dec 2011 18:21:28 +0000 (10:21 -0800)]
Merge "Allow aligning the raw image buffer"
Yunqing Wang [Mon, 5 Dec 2011 18:25:09 +0000 (13:25 -0500)]
Allow aligning the raw image buffer
Added code to allocate aligned image buffer in vpx_img_alloc(). The
alignment of the buffer and stride is determined by the parameter
align.
Change-Id: Idc866978484be3558551c56df39130ab7f74ddd4
Yunqing Wang [Tue, 25 Oct 2011 19:14:16 +0000 (15:14 -0400)]
Multiple-resolution encoder
The example encoder down-samples the input video frames a number of
times with a down-sampling factor, and then encodes and outputs
bitstreams with different resolutions.
Support arbitrary down-sampling factor, and down-sampling factor
can be different for each encoding level.
For example, the encoder can be tested as follows.
1. Configure with multi-resolution encoding enabled:
../libvpx/configure --target=x86-linux-gcc --disable-codecs
--enable-vp8 --enable-runtime_cpu_detect --enable-debug
--disable-install-docs --enable-error-concealment
--enable-multi-res-encoding
2. Run make
3. Encode:
If input video is 1280x720, run:
./vp8_multi_resolution_encoder 1280 720 input.yuv 1.ivf 2.ivf 3.ivf 1
(output: 1.ivf(1280x720); 2.ivf(640x360); 3.ivf(320x180).
The last parameter is set to 1/0 to show/not show PSNR.)
4. Decode:
./simple_decoder 1.ivf 1.yuv
./simple_decoder 2.ivf 2.yuv
./simple_decoder 3.ivf 3.yuv
5. View video:
mplayer 1.yuv -demuxer rawvideo -rawvideo w=1280:h=720 -loop 0 -fps 30
mplayer 2.yuv -demuxer rawvideo -rawvideo w=640:h=360 -loop 0 -fps 30
mplayer 3.yuv -demuxer rawvideo -rawvideo w=320:h=180 -loop 0 -fps 30
The encoding parameters can be modified in vp8_multi_resolution_encoder.c,
for example, target bitrate, frame rate...
Modified API. John helped a lot with that. Thanks!
Change-Id: I03be9a51167eddf94399f92d269599fb3f3d54f5
John Koleszar [Mon, 5 Dec 2011 22:36:54 +0000 (14:36 -0800)]
Merge "Speed selection support for disabled reference frames"
John Koleszar [Tue, 29 Nov 2011 16:54:31 +0000 (08:54 -0800)]
Merge "bugfix: all vpxenc arguments were not parsed under all conditions"