summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Scott LaVarnway [Mon, 14 Jun 2010 18:07:56 +0000 (14:07 -0400)]
sse2 version of vp8_regular_quantize_b
Added sse2 version of vp8_regular_quantize_b which improved encode
performance(for the clip used) by ~10% for 32 bit builds and ~3% for
64 bit builds.
Also updated SHADOW_ARGS_TO_STACK to allow for more than 9 arguments.
Change-Id: I62f78eabc8040b39f3ffdf21be175811e96b39af
Paul Wilkins [Mon, 14 Jun 2010 16:55:02 +0000 (09:55 -0700)]
Merge "Use local pointer to pbi->common."
John Koleszar [Mon, 14 Jun 2010 13:09:47 +0000 (06:09 -0700)]
Merge "platform autodetect: accept amd64 as a synonym for x86_64"
Fabio Pedretti [Mon, 14 Jun 2010 13:05:35 +0000 (09:05 -0400)]
Remove useless 500 frame limit
Change-Id: Ib82de60cf32cf08844c3e2d88d7c587396f3892c
John Koleszar [Mon, 14 Jun 2010 12:54:47 +0000 (05:54 -0700)]
Merge "ivfenc: fix two-pass support of raw files"
Andres Mejia [Mon, 14 Jun 2010 05:27:33 +0000 (01:27 -0400)]
Use public domain implementation for MD5 algorithm
The RSA Data Security, Inc. implementation license bears a requirement
similar to the old problematic BSD license with advertising clause.
Change-Id: I877b71ff0548934b1c4fd87245696f53dedbdf26
John Koleszar [Mon, 14 Jun 2010 12:33:54 +0000 (08:33 -0400)]
ivfenc: fix two-pass support of raw files
Commit 3245d46 "ivfenc: support reading/writing from a pipe" broke
support for two pass encodes of raw files when done in two
invocations of ivfenc. The raw image was only set up on pass 0,
which was never hit when running with --pass=2 --passes=2.
Change-Id: I6a9858be1a8998d5bd45331123b46b1baa05b379
John Koleszar [Sun, 13 Jun 2010 21:35:21 +0000 (14:35 -0700)]
Merge "Make this/next iiratio unsigned."
Paul Wilkins [Sun, 13 Jun 2010 11:01:46 +0000 (04:01 -0700)]
Merge "Tuning of baseline Rd equation to improve behavior at the"
Paul Wilkins [Sun, 13 Jun 2010 11:01:01 +0000 (04:01 -0700)]
Merge "Incorrect comment."
John Koleszar [Sat, 12 Jun 2010 18:11:51 +0000 (14:11 -0400)]
Make this/next iiratio unsigned.
This patch addresses issue #79, which is a regression since commit
28de670 "Fix RD bug." If the coded error value is zero, the iiratio
calculation effectively multiplies by 1000000 by the
DOUBLE_DIVIDE_CHECK macro. This can result in a value larger than
INT_MAX, giving a negative ratio. Since the error values are
conceptually unsigned (though they're stored in a double) this patch
makes the iiratio values unsigned, which allows the clamping to work
as expected.
John Koleszar [Sat, 12 Jun 2010 14:10:39 +0000 (07:10 -0700)]
Merge "require --enable-psnr to build ssim"
John Koleszar [Thu, 10 Jun 2010 21:10:12 +0000 (17:10 -0400)]
ivfenc: support reading/writing from a pipe
Use - for the filename to use stdin/stdout. Update to avoid opening
the file multiple times.
Change-Id: I356356fa16bb334d4b22abc531dc03c0d95917a3
John Koleszar [Fri, 11 Jun 2010 18:36:38 +0000 (11:36 -0700)]
Merge "Enable vp8_sad16x16x4d_sse3 in non-RTCD case"
Yaowu Xu [Fri, 11 Jun 2010 18:14:25 +0000 (11:14 -0700)]
Merge "Change preprocessor check to _WIN32"
John Koleszar [Fri, 11 Jun 2010 17:15:30 +0000 (13:15 -0400)]
Enable vp8_sad16x16x4d_sse3 in non-RTCD case
Typo caused C version of 16x16x4 SAD to be called when built with
--disable-runtime-cpu-detect.
Change-Id: I0fe6fa67280b3a5f13acb3c8ed914f039aaaf316
John Koleszar [Fri, 11 Jun 2010 17:05:08 +0000 (13:05 -0400)]
require --enable-psnr to build ssim
ssim.c comiles in a huge (512M) amount of global scratch space. Allocating
this data on the heap would be a better solution, but this file doesn't
need to be built at all in most cases, so as a first pass, disable it
except when doing opsnr.stt output (--enable-psnr).
Change-Id: I320d812f6d652a12516a16b52295ebff20b5bd42
John Koleszar [Fri, 11 Jun 2010 16:16:36 +0000 (12:16 -0400)]
platform autodetect: accept amd64 as a synonym for x86_64
Thanks to James Cloos <cloos at jhcloos dot com> for the tip.
Change-Id: If377cc084dd7c16a4f51191a2aa0d83e7117ebec
Makoto Kato [Fri, 11 Jun 2010 09:32:28 +0000 (18:32 +0900)]
some XMM registers are non-volatile on windows x64 ABI
XMM6 to XMM15 are non-volatile on Windows x64 ABI. We have to save
these registers.
Change-Id: I4676309f1350af25c8a35f0c81b1f0499ab99076
Paul Wilkins [Fri, 11 Jun 2010 15:12:45 +0000 (16:12 +0100)]
Incorrect comment.
(Thanks to Ronald S. Bultje)
Paul Wilkins [Fri, 11 Jun 2010 14:17:57 +0000 (15:17 +0100)]
Use local pointer to pbi->common.
Paul Wilkins [Fri, 11 Jun 2010 14:10:51 +0000 (15:10 +0100)]
Tuning of baseline Rd equation to improve behavior at the
low and high Q ends.
Frank Galligan [Thu, 10 Jun 2010 20:59:21 +0000 (16:59 -0400)]
Change preprocessor check to _WIN32
Change-Id: I841dc0b8ebb150ac998f4076c148d7bb187e4301
Yunqing Wang [Fri, 11 Jun 2010 13:48:52 +0000 (06:48 -0700)]
Merge "Improve vp8_sixtap_predict functions"
John Koleszar [Thu, 10 Jun 2010 12:56:31 +0000 (08:56 -0400)]
replace while(0) construct with if/else
No good reason to be tricky here. I don't know why 'break' occurred to me
as the natrual replacement for the 'return', but an if/else block is
definitely clearer.
Change-Id: I08a336307afeb0dc7efa494b37398f239f66c2cf
Timothy B. Terriberry [Thu, 10 Jun 2010 22:42:24 +0000 (18:42 -0400)]
Fix new MV clamping scheme for chroma MVs.
The new scheme introduced in I68d35a2f did not clamp chroma MVs in the SPLITMV
case, and clamped them incorrectly (to the luma plane bounds) in every other
case.
Because chroma MVs are computed from the luma MVs before clamping occurs, they
could still point outside of the frame buffer and cause crashes.
This clamping happens outside of the MV prediction loop, and so should not
affect bitstream decoding.
John Koleszar [Thu, 10 Jun 2010 16:08:01 +0000 (12:08 -0400)]
Remove reference to 'vpx Technologies'
Vestigial.
Change-Id: Iffa9e6d5ba5199b136d7549890101da17c11e3c3
John Koleszar [Thu, 10 Jun 2010 16:07:34 +0000 (12:07 -0400)]
Fix MinGW toolchain detection
Updated the comment in change I6bef2ab5, but missed adding the code to
the commit.
Change-Id: I14d300489b79730e3995175bfe5f9271b569abe3
Yunqing Wang [Thu, 10 Jun 2010 15:48:48 +0000 (11:48 -0400)]
Improve vp8_sixtap_predict functions
Restructure vp8_sixtap_predict functions to eliminate extra 5-line
calculation while doing first-pass only. Also, combline functions
to eliminate usage of intermediate buffer. This gives decoder a 3%
performance gain on my test clips.
Change-Id: I13de49638884d1a57d0855c63aea719316d08c1b
John Koleszar [Thu, 10 Jun 2010 14:21:03 +0000 (07:21 -0700)]
Merge "Detect toolchain based on gcc -dumpmachine"
Philip Jägenstedt [Mon, 7 Jun 2010 04:12:14 +0000 (06:12 +0200)]
Detect toolchain based on gcc -dumpmachine
Using uname fails e.g. on a 64-bit machine with a 32-bit toolchain.
The following gcc -dumpmachine strings have been verified:
* 32-bit Linux gives i486-linux-gnu
* 64-bit Linux gives x86_64-linux-gnu
* Mac OS X 10.5 gives i686-apple-darwin9
* MinGW gives mingw32
*darwin8* and *bsd* can safely be assumed to be correct, but *cygwin*
is a guess.
Change-Id: I6bef2ab5e97cbd3410aa66b0c4f84d2231884b05
Paul Wilkins [Thu, 10 Jun 2010 10:24:54 +0000 (03:24 -0700)]
Merge "Adjust to avoid long line"
Paul Wilkins [Wed, 9 Jun 2010 14:03:48 +0000 (15:03 +0100)]
Adjust to avoid long line
Paul Wilkins [Thu, 10 Jun 2010 10:05:32 +0000 (03:05 -0700)]
Merge "Correct comment"
Paul Wilkins [Thu, 10 Jun 2010 10:04:45 +0000 (03:04 -0700)]
Merge "Fix RD bug."
John Koleszar [Thu, 10 Jun 2010 00:55:57 +0000 (17:55 -0700)]
Merge "Remove secondary mv clamping from decode stage"
John Koleszar [Thu, 10 Jun 2010 00:52:50 +0000 (17:52 -0700)]
Merge "Make shared object use extralibs"
John Koleszar [Wed, 9 Jun 2010 15:29:20 +0000 (11:29 -0400)]
Remove secondary mv clamping from decode stage
This patch removes the secondary MV clamping from the MV decoder. This
behavior was consistent with limits placed on non-split MVs by the
reference encoder, but was inconsistent with the MVs generated in the
split case.
The purpose of this secondary clamping was only to prevent crashes on
invalid data. It was not intended to be a behaviour an encoder could or
should rely on. Instead of doing additional clamping in a way that
changes the entropy context, the secondary clamp is removed and the
border handling is made implmentation specific. With respect to the
spec, the border is treated as essentially infinite, limited only by
the clamping performed on the near/nearest reference and the maximum
encodable magnitude of the residual MV.
This does not affect any currently produced streams.
Change-Id: I68d35a2fbb51570d6569eab4ad233961405230a3
Yaowu Xu [Tue, 8 Jun 2010 20:32:15 +0000 (13:32 -0700)]
minor cleanup of quantizer and fdct code
Change-Id: I7ccc580410bea096a70dce0cc3d455348d4287c5
Yaowu Xu [Tue, 8 Jun 2010 14:56:55 +0000 (07:56 -0700)]
fix a typo
Change-Id: I180a05ad57ee6164a6a169ee08e8affd09671eee
Paul Wilkins [Tue, 8 Jun 2010 08:59:57 +0000 (09:59 +0100)]
Correct comment
Paul Wilkins [Mon, 7 Jun 2010 16:34:46 +0000 (17:34 +0100)]
Fix RD bug.
Philip Jägenstedt [Mon, 7 Jun 2010 08:42:09 +0000 (16:42 +0800)]
remove unreferenced variable i
Yaowu Xu [Mon, 7 Jun 2010 14:42:22 +0000 (07:42 -0700)]
Merge "Remove duplicate and unused functions"
Yaowu Xu [Thu, 3 Jun 2010 22:08:44 +0000 (15:08 -0700)]
Remove duplicate and unused functions
Change-Id: I944035e720ef834561a9da0d723879a4f787312c
Luca Barbato [Sun, 6 Jun 2010 16:51:49 +0000 (18:51 +0200)]
Make shared object use extralibs
this way -lm doesn't get ignored if additional LDFLAGS get passed from
env
Change-Id: Ie630369ae6ed2780377c35aa2726e759d527bb50
John Koleszar [Thu, 3 Jun 2010 14:29:04 +0000 (10:29 -0400)]
shared library support (.so)
This patch adds support for building shared libraries when configured
with the --enable-shared switch.
Building DLLs would require more invasive changes to the sample
utilities than I want to make in this patch, since on Windows you can't
use the address of an imported symbol in a static initializer. The best
way to work around this is proably to build the codec interface mapping
table with an init() function, but dll support is of questionable value
anyway, since most windows users will probably use a media framework
lib like webmdshow, which links this library in staticly.
Change-Id: Iafb48900549b0c6b67f4a05d3b790b2643d026f4
Alex Converse [Sat, 5 Jun 2010 16:19:40 +0000 (12:19 -0400)]
Remove some bashism from the shell scripts.
Note that configure.sh still uses the bashism $(RANDOM).
John Koleszar [Fri, 4 Jun 2010 20:19:40 +0000 (16:19 -0400)]
LICENSE: update with latest text
Change-Id: Ieebea089095d9073b3a94932791099f614ce120c
Timothy B. Terriberry [Wed, 26 May 2010 23:36:20 +0000 (19:36 -0400)]
Add support for YUV4MPEG2 output.
These files can be played back directly in most major open-source media
frameworks without the need for additional patches or parameters.
Change-Id: I59f98c1658298245c688f7d107cf393445e470d5
Timothy B. Terriberry [Wed, 26 May 2010 22:27:51 +0000 (18:27 -0400)]
Add support for reading YUV4MPEG2 files to ivfenc.
A large collection of example files may be found at
http://media.xiph.org/video/derf/
This also fixes a bug in ivfenc for uncompressed IVF input, which previously
appeared not to skip past the file header the second time it opened the file.
I don't actually have an IVF file with which to test this fix, however.
Change-Id: Id69a1e11a3fa16c4a4fa8944e880bcea090cd52b
Yaowu Xu [Wed, 2 Jun 2010 02:20:37 +0000 (19:20 -0700)]
Merge "Remove un-necessary memory initialization"
Yunqing Wang [Fri, 28 May 2010 18:34:39 +0000 (14:34 -0400)]
Remove costly memory reads/writes in vp8_reset_mb_tokens_context()
Tests on x86 showed this function costed 2.7% of total decoding time
because of all the memory reads/writes. After modification, it only
costs about 0.7% of decoding time, which gives a 2% gain.
Change-Id: I5003ee30b6dc6dea0bfa42a6ad7e7c22fcc7b215
Yaowu Xu [Sun, 30 May 2010 05:59:31 +0000 (22:59 -0700)]
Remove un-necessary memory initialization
The intra prediction needs one line above at the top edge.
John Koleszar [Fri, 28 May 2010 15:49:04 +0000 (08:49 -0700)]
Merge "expose vp8_deblock"
John Koleszar [Fri, 28 May 2010 14:11:58 +0000 (10:11 -0400)]
configure: update script headers
The libvpx build system was influenced by the clever design of the
FFmpeg configure script. Say so in the script header, and provide a
little introduction.
Change-Id: I4d134c77f9032d1dde72b852b444e98676b85326
Luca Barbato [Fri, 28 May 2010 08:37:43 +0000 (10:37 +0200)]
expose vp8_deblock
it is used by vp8/encoder/onyx_if.c
fixes:
vp8/encoder/onyx_if.c:5189: warning: implicit declaration of function
‘vp8_deblock’
Yaowu Xu [Thu, 27 May 2010 17:32:40 +0000 (10:32 -0700)]
Fix stats format and correct data size and bit rate output
Change-ID: I093abe6094589a0d73f6ca85b825678a19e68285
Yaowu Xu [Thu, 27 May 2010 17:04:36 +0000 (10:04 -0700)]
Increase the size of output packet list
This is to accommodate output packets for both compressed
data and psnr stats. For each frame, there are at least
one packet for compressed data and one for psnr stats. For
a max lag of 25, 64 is large enough to cover all lagged
frames at the end of encoding.
Change-Id: If20787fbc86f96e1aa16a3ccf2adc93e6c1e3d5f
John Koleszar [Wed, 26 May 2010 19:57:42 +0000 (15:57 -0400)]
configure: support --prefix, --libdir
Support --prefix, --libdir as a conventional way of specifying the default
installation directories. libdir is required to be a subdirectory of prefix
at this time.
Change-Id: If45d9e3129efcde83c05b7766accc9017988e715
John Koleszar [Thu, 27 May 2010 12:56:34 +0000 (08:56 -0400)]
x86: tell gnu ld that we don't require an executable stack
Fixes #2
Change-Id: Ie15c57ccf2f9721cb35102765d759817f2607cd7
James Zern [Wed, 26 May 2010 22:14:26 +0000 (18:14 -0400)]
Conditionally build enc/dec specific API sources
vpx_codec.mk: Select required sources based on CONFIG_{EN,DE}CODERS.
Relocate _dec_init_ver to vpx_decoder.c to match vpx_encoder.
Change-Id: I6a171bc497499040912b2fb17786fba21a8ebc56
Paul Wilkins [Wed, 26 May 2010 16:06:49 +0000 (09:06 -0700)]
Merge "Correct bit allocation when the alternative reference frame"
John Koleszar [Wed, 26 May 2010 13:27:34 +0000 (06:27 -0700)]
Merge "examples: use I420 input for encoders"
John Koleszar [Tue, 25 May 2010 20:00:51 +0000 (13:00 -0700)]
Merge "vpx_image: add VPX_ prefix to PLANE_*"
John Koleszar [Tue, 25 May 2010 20:00:43 +0000 (13:00 -0700)]
Merge "configure: detect toolchain if not specified"
John Koleszar [Mon, 24 May 2010 16:50:43 +0000 (12:50 -0400)]
configure: detect toolchain if not specified
Try to select an optimized target based on the host's uname, as this
is the expected behavior of most configure scripts.
Change-Id: I1408ece70c43487902ea6edc6450d6a55abc424a
John Koleszar [Tue, 25 May 2010 14:17:35 +0000 (10:17 -0400)]
remove references to vp8/vp8.h
This file was moved to vpx/, currently this reference breaks the MSVS build.
Change-Id: I2c90a7a1c09cb66055e3daf84facefcaee1085a1
Paul Wilkins [Tue, 25 May 2010 13:26:26 +0000 (14:26 +0100)]
Correct bit allocation when the alternative reference frame
is constructed from multiple source frames
Change-Id: I2e026c10d02b071b401c9fe8ab8dcfc0ac306103
John Koleszar [Tue, 25 May 2010 12:33:57 +0000 (08:33 -0400)]
examples: use I420 input for encoders
The output of simple_decoder, as well as the default format for the
ivf{enc,dec} tools, is I420. The encoder examples are changed to default
to I420 as well. This is desirable because passing the output of
simple_encoder to simple_decoder would otherwise have the chroma planes
flipped, which is unexpected.
Change-Id: I9d4f10ace594a54a7fc4f9a1f9187365c01fd638
John Koleszar [Tue, 25 May 2010 01:45:05 +0000 (21:45 -0400)]
vpx_image: add VPX_ prefix to PLANE_*
The PLANE_{PACKED,Y,U,V,ALPHA} macros should be renamed to be within the
VPX_ namespace.
Fixes #27
John Koleszar [Tue, 25 May 2010 00:33:49 +0000 (17:33 -0700)]
Merge "configure: support --enable-pic for generic-gnu"
John Koleszar [Mon, 24 May 2010 15:39:59 +0000 (11:39 -0400)]
install includes in DIST_DIR/include/vpx, move vpx_codec/ to vpx/
This renames the vpx_codec/ directory to vpx/, to allow applications
to more consistently reference these includes with the vpx/ prefix.
This allows the includes to be installed in /usr/local/include/vpx
rather than polluting the system includes directory with an
excessive number of includes.
Change-Id: I7b0652a20543d93f38f421c60b0bbccde4d61b4f
John Koleszar [Mon, 24 May 2010 14:16:44 +0000 (10:16 -0400)]
make: make install target behave as expected
Split the 'make install' target into two: install and dist. dist
retains the old make install behavior of building a "distribution"
release, with source files, build system, etc. install does what
one one expects -- installs into a tree in the filesystem, /usr/local
by default.
Change-Id: I0805681ac10f853ef94cdc3aa70981c6bea81b45
John Koleszar [Mon, 24 May 2010 18:07:13 +0000 (11:07 -0700)]
Merge "Fixed an encoder debug/relese mismatch in x86_64-win64-vs8"
James Zern [Mon, 24 May 2010 17:47:38 +0000 (10:47 -0700)]
Merge "Restore and deprecate img_fmt"
James Zern [Sat, 22 May 2010 17:56:14 +0000 (13:56 -0400)]
Restore and deprecate img_fmt
Deprecate img_fmt type and constants removed in 6cd4a10 allowing older
code to build.
Addresses: http://code.google.com/p/webm/issues/detail?id=25
Change-Id: I786bff1ebde4d1621c6f58dcc685f382bb733e29
John Koleszar [Mon, 24 May 2010 15:55:17 +0000 (11:55 -0400)]
configure: support --enable-pic for generic-gnu
Allows the default generic-gnu target, which is selected if no
target is specified, to be build in PIC mode. The generic-gnu target
was not being selected as a gcc target, because it doesn't end in
gcc.
Change-Id: I28a2a420109c34fd87a20911f6455c8d8d5ded75
Yunqing Wang [Mon, 24 May 2010 15:30:04 +0000 (11:30 -0400)]
Fixed minor bug for realtime-only building
James Zern [Fri, 21 May 2010 03:22:39 +0000 (23:22 -0400)]
Put img_fmt in the vpx namespace
Avoid an potential name clashes and match other external types.
s/IMG_FMT/VPX_$&/g
s/img_fmt/vpx_$&/g
Change-Id: Ia7ad5bbb6424416b37e71e5f5eb1eca31c3c707f
John Koleszar [Thu, 20 May 2010 18:44:18 +0000 (14:44 -0400)]
configure: remove HAVE_CONFIG_H
This doesn't play well with autotools, and the preprocessor magic is
confusing and unhelpful in the vp8-only context.
Change-Id: I2fcb57e6eb7876ecb58509da608dc21f26077ff1
John Koleszar [Fri, 21 May 2010 09:52:11 +0000 (02:52 -0700)]
Merge "makefile: fix error message due to missing quotes"
Justin Clift [Thu, 20 May 2010 14:09:38 +0000 (00:09 +1000)]
makefile: fix error message due to missing quotes
1 liner bug fix for issue #10. Surrounding quotation marks were
missing from a variable, causing a warning message inside a test
clause.
Change-Id: Ia21421f77c309bbd87332547374241269bbe5326
Paul Wilkins [Fri, 21 May 2010 07:09:07 +0000 (00:09 -0700)]
Merge "Fixed incorrect casts that broke rate control in some situations."
James Zern [Thu, 20 May 2010 17:14:17 +0000 (13:14 -0400)]
Name all external facing structs
Replace all anonymous structs with struct name matching current typedef
minus _t.
Change-Id: I639295e8f1bc4651fffc9286a7dba5171c92ce92
Paul Wilkins [Thu, 20 May 2010 15:49:39 +0000 (16:49 +0100)]
Fixed incorrect casts that broke rate control in some situations.
Yaowu Xu [Wed, 19 May 2010 22:48:00 +0000 (15:48 -0700)]
Fixed an encoder debug/relese mismatch in x86_64-win64-vs8
Visual c++ compiler uses xmm registers for floating point
operations for 64 bit architecture, therefore its calling
convention requires the preservation of xmm6-xmm15 in any
function that have used these registers. However, the sse2
functions, that were originally written for 32 bit windows,
may have used xmm6 and xmm7 without preserving the content.
In this particular case, the compiler used xmm6 to save
the variable "two_pass_min_rate", the value of the variable
is mucked up by our sse2 optimized loop filter functions,
hence the results of release/debug mismatching.
Pavol Rusnak [Wed, 19 May 2010 19:15:32 +0000 (21:15 +0200)]
remove unneeded variables
John Koleszar [Tue, 18 May 2010 15:58:33 +0000 (11:58 -0400)]
Initial WebM release