profile/ivi/libvpx.git
14 years agoRename mode_ref_lf_test_function
John Koleszar [Wed, 29 Sep 2010 17:53:08 +0000 (13:53 -0400)]
Rename mode_ref_lf_test_function

This function graduated from being a test func to something that's on
by default. Rename it and remove some spurious comments that confuse
its status.

Change-Id: I689695a3ad29c35e9a72a43ec93766733ac6c20b

14 years agoFix loopfilter delta zero transitions
John Koleszar [Wed, 29 Sep 2010 17:04:04 +0000 (13:04 -0400)]
Fix loopfilter delta zero transitions

Loopfilter deltas are initialized to zero on keyframes in the decoder.
The values then persist from the previous frame unless an update bit
is set in the bitstream. This data is not included in the entropy
data saved by the 'refresh entropy' bit in the bitstream, so it is
effectively an additional contextual element beyond the 3 ref-frames
and the entropy data.

The encoder was treating this delta update bit as update-if-nonzero,
meaning that the value would be refreshed even if it hadn't changed,
and more significantly, if the correct value for the delta changed
to zero, the update wouldn't be sent, and the decoder would preserve
the last (presumably non-zero) value.

This patch updates the encoder to send an update only if the value
has changed from the previously transmitted value. It also forces the
value to be transmitted in error resilient mode, to account for lost
context in the event of lost frames.

Change-Id: I56671d5b42965d0166ac226765dbfce3e5301868

14 years agoChange to coefficient optimization rules.
Paul Wilkins [Wed, 29 Sep 2010 12:22:05 +0000 (13:22 +0100)]
Change to coefficient optimization rules.

Allow coefficient optimization for good quality speed 0.

Change-Id: Id0cb363df6823c6798671584fbba097916a7df2c

14 years agoMerge "Moved row-specific computation of MV bounds out of col loop"
Adrian Grange [Wed, 29 Sep 2010 12:13:41 +0000 (05:13 -0700)]
Merge "Moved row-specific computation of MV bounds out of col loop"

14 years agoMoved row-specific computation of MV bounds out of col loop
Adrian Grange [Wed, 29 Sep 2010 12:03:07 +0000 (13:03 +0100)]
Moved row-specific computation of MV bounds out of col loop

Moved the bounds computation on vertical MV component out
of the loop that processes MBs within a MB row.

14 years agoControl of active min quantizer for two pass.
Paul Wilkins [Wed, 29 Sep 2010 11:03:19 +0000 (12:03 +0100)]
Control of active min quantizer for two pass.

Create  look up tables for controlling the active quantizer range.
Some initial tuning to improve quality circa 0.5% on test set.
Clean up of some stats output code

Change-Id: Ia698a8525f8b8129a503cadace3ee73fe888f543

14 years agoEnabled AltRef motion map creation
Adrian Grange [Tue, 28 Sep 2010 15:52:19 +0000 (16:52 +0100)]
Enabled AltRef motion map creation

Enabled the first-pass encode to output the
map of macroblock coding modes required by
the AltRef filter.

14 years agoMerge "Made AltRef filter adaptive & added motion compensation"
Adrian Grange [Tue, 28 Sep 2010 15:34:44 +0000 (08:34 -0700)]
Merge "Made AltRef filter adaptive & added motion compensation"

14 years agoMade AltRef filter adaptive & added motion compensation
Adrian Grange [Tue, 28 Sep 2010 14:23:41 +0000 (15:23 +0100)]
Made AltRef filter adaptive & added motion compensation

Modified AltRef temporal filter to adapt filter length based
on macroblock coding modes selected during first-pass
encode.

Also added sub-pixel motion compensation to the AltRef
filter.

14 years agoMerge "update gitignore"
Johann [Tue, 28 Sep 2010 14:10:09 +0000 (07:10 -0700)]
Merge "update gitignore"

14 years agoupdate gitignore
Johann [Tue, 28 Sep 2010 13:31:11 +0000 (09:31 -0400)]
update gitignore

this was excluding all .asm files when it should have just been .asm
files in the top level directory and .asm.s files lower down. also be
more restrictive on some other items, and run the whole thing through
sort to keep it organized

Change-Id: Ia48525033226b13098a491ce89465d0377b990c2

14 years agoAdd 4-tap version of 2nd-pass ARMv6 MC filter.
Timothy B. Terriberry [Tue, 28 Sep 2010 00:18:18 +0000 (17:18 -0700)]
Add 4-tap version of 2nd-pass ARMv6 MC filter.

The existing code applied a 6-tap filter with 0's on either end.
We're already paying the branch penalty to avoid computing the two
 extra columns needed as input to this filter.
We might as well save time computing the filter as well.
This reduces the inner loop from 21 instructions to 16, the number
 of loads per iteration from 4 to 1, and the number of multiplies
 from 7 to 4.
The gain in overall decoding performance, however, is small (less
 than 1%).

This change also means we now valgrind clean on ARMv6, which is
 its real purpose.
The errors reported here were valgrind's fault (it does not detect
 that 0 times an uninitialized value is initialized), but Julian
 Seward says it would slow down valgrind considerably to make such
 checks.
Speeding up libvpx rather, even by a small amount, seems a much
 better idea if only to enable proper valgrind checking of the
 rest of the codec.

Change-Id: Ifb376ea195e086b60f61daf1097d8910c4d8ff16

14 years agoBadly placed initialization of rolling rate monitors.
Paul Wilkins [Fri, 24 Sep 2010 16:52:55 +0000 (17:52 +0100)]
Badly placed initialization of rolling rate monitors.

This affects control of the active quantizer range.

Change-Id: I30511fc81ac9f75ff20d9f1372382423d56739da

14 years agomove reconintra_mt to decoder (fixup)
John Koleszar [Mon, 27 Sep 2010 16:48:31 +0000 (12:48 -0400)]
move reconintra_mt to decoder (fixup)

Missed the .h file in the move.

Change-Id: Ib408183fbb4d019fd46394b362f89ca6ea9d10bc

14 years agoMerge "disable compilation of debugging code"
John Koleszar [Mon, 27 Sep 2010 14:00:03 +0000 (07:00 -0700)]
Merge "disable compilation of debugging code"

14 years agoMerge "combine max values and compare once"
Johann [Mon, 27 Sep 2010 13:39:20 +0000 (06:39 -0700)]
Merge "combine max values and compare once"

14 years agoMerge "Fix valgrind errors in vp8_sixtap_predict8x4_armv6()."
Johann [Mon, 27 Sep 2010 13:36:22 +0000 (06:36 -0700)]
Merge "Fix valgrind errors in vp8_sixtap_predict8x4_armv6()."

14 years agoMerge "darwin-icc: build for specific SDKs"
John Koleszar [Mon, 27 Sep 2010 13:10:07 +0000 (06:10 -0700)]
Merge "darwin-icc: build for specific SDKs"

14 years agoFix valgrind errors in vp8_sixtap_predict8x4_armv6().
Timothy B. Terriberry [Fri, 24 Sep 2010 21:30:13 +0000 (14:30 -0700)]
Fix valgrind errors in vp8_sixtap_predict8x4_armv6().

This function was accessing values below the stack pointer, which
 can be corrupted by signal delivery at any time.

Change-Id: I92945b30817562eb0340f289e74c108da72aeaca

14 years agocombine max values and compare once
Johann [Fri, 24 Sep 2010 16:03:31 +0000 (12:03 -0400)]
combine max values and compare once

previous implementation compared each set of values to limit and then
&'d them together, requiring a compare and & for each value.

this does the accumulation first, requiring only one compare

Change-Id: Ia5e3a1a50e47699c88470b8c41964f92a0dc1323

14 years agoMerge "move reconintra_mt to decoder (for now)"
John Koleszar [Fri, 24 Sep 2010 15:46:35 +0000 (08:46 -0700)]
Merge "move reconintra_mt to decoder (for now)"

14 years agodisable compilation of debugging code
John Koleszar [Fri, 24 Sep 2010 15:10:25 +0000 (11:10 -0400)]
disable compilation of debugging code

This patch avoids compiling some debugging code in onyx_if.c. The most
significant fix is to avoid generating code for vp8_write_yuv_frame,
which is never called. Some other code was removed by the dead code
elimination performed by the compiler, and this patch does it with the
preprocessor instead. There are advantages both ways.

Change-Id: I044fd43179d2e947553f0d6f2cad5b40907ac458

14 years agodarwin-icc: build for specific SDKs
John Koleszar [Fri, 24 Sep 2010 15:39:27 +0000 (11:39 -0400)]
darwin-icc: build for specific SDKs

Add the missing -isysroot and -mmacosx-version-min flags to ICC builds.
Fixes issue #185.

Change-Id: I2fb37fcaaafef7122a61ced603569f4aa17f8bbc

14 years agoMerge "Adjust multi-thread sync ranges according to image sizes"
Yunqing Wang [Fri, 24 Sep 2010 15:34:07 +0000 (08:34 -0700)]
Merge "Adjust multi-thread sync ranges according to image sizes"

14 years agomove reconintra_mt to decoder (for now)
John Koleszar [Fri, 24 Sep 2010 15:21:35 +0000 (11:21 -0400)]
move reconintra_mt to decoder (for now)

reconintra_mt.c is only required for building the decoder right now.
It could definitely be used for the encoder in the future, but it
currently depends on decoder only data structures. (onyxd_int.h,
VP8D_COMP, etc). Move it from common/ to decoder/ until the
necessary changes to the common multithread code are complete.

This patch is needed to build with --disable-vp8-decoder.

Change-Id: I568c52221a2b309234d269675cba97131ce35c86

14 years agoconfigure: enable PIC for shared libs by default
John Koleszar [Tue, 21 Sep 2010 14:34:51 +0000 (10:34 -0400)]
configure: enable PIC for shared libs by default

Shared libs generally require PIC, so this saves a little typing at
configure time.

Change-Id: I357d70cc68434f3283fee78873052d2b7d77c777

14 years agoconfigure: add --enable-small
John Koleszar [Tue, 21 Sep 2010 14:06:41 +0000 (10:06 -0400)]
configure: add --enable-small

Build with -O2 rather than -O3, to dissuade the compiler from inlining
so much. See issue #1.

Change-Id: Iacb8ddb59125d3f01c5fea846b45a1c004c9aee0

14 years agoMerge "Add getter functions for the interface data symbols"
John Koleszar [Fri, 24 Sep 2010 12:39:48 +0000 (05:39 -0700)]
Merge "Add getter functions for the interface data symbols"

14 years agoAdd getter functions for the interface data symbols
John Koleszar [Tue, 21 Sep 2010 14:35:52 +0000 (10:35 -0400)]
Add getter functions for the interface data symbols

Having these symbols be available as functions rather than data is
occasionally more convenient. Implemented this way rather than a
get-codec-by-id style to avoid creating a link-time dependency
between the encoder and the decoder.

Fixes issue #169

Change-Id: I319f281277033a5e7e3ee3b092b9a87cce2f463d

14 years agoAdjust multi-thread sync ranges according to image sizes
Yunqing Wang [Thu, 23 Sep 2010 17:53:09 +0000 (13:53 -0400)]
Adjust multi-thread sync ranges according to image sizes

In multi-threaded decoder, set different sync ranges for
different video resolutions.

Change-Id: Iea48fd36f51919e0152c8ed3b1f10e1b723c0ca7

14 years agoRemove dead code
Johann [Wed, 22 Sep 2010 15:07:34 +0000 (11:07 -0400)]
Remove dead code

The new loopfilter was originally introduced as an experimental change.
It's permanent now.

Change-Id: I25dbedb6ceff3e9f9c04e18bb29f84c3ecb7e546

14 years agounset execute bit on c source
John Koleszar [Tue, 21 Sep 2010 23:48:06 +0000 (19:48 -0400)]
unset execute bit on c source

Change-Id: I6625ee41f8872908cb015ce0729e1c7a105b5217

14 years agoMerge "Fix typo"
Johann [Tue, 21 Sep 2010 19:03:37 +0000 (12:03 -0700)]
Merge "Fix typo"

14 years agoFix typo
Johann [Tue, 21 Sep 2010 18:56:42 +0000 (14:56 -0400)]
Fix typo

Also, move with other ppc32 options

Change-Id: I0b97413c767909c5682afc9bdd954f3d43401f6c

14 years agoMerge "Don't reset mb clamping state during splitmv decoding"
John Koleszar [Tue, 21 Sep 2010 16:06:59 +0000 (09:06 -0700)]
Merge "Don't reset mb clamping state during splitmv decoding"

14 years agoDon't reset mb clamping state during splitmv decoding
John Koleszar [Tue, 21 Sep 2010 15:54:36 +0000 (11:54 -0400)]
Don't reset mb clamping state during splitmv decoding

The MV decoding changes in c5fb0eb introduced a bug where the
macroblock clamping state was reset for each partition, so if an
earlier partition needed clamping but a subsequent one didn't,
the MB wouldn't receive clamping. Instead, the state is only
set during splitmv decoding, never cleared.

Change-Id: I224fe258493405ee0f6a04596acdb622c475e845

14 years agoMerge "gitignore: initial version"
John Koleszar [Tue, 21 Sep 2010 14:13:26 +0000 (07:13 -0700)]
Merge "gitignore: initial version"

14 years agoMerge "configure: support for ppc32-linux-gcc"
John Koleszar [Tue, 21 Sep 2010 14:02:43 +0000 (07:02 -0700)]
Merge "configure: support for ppc32-linux-gcc"

14 years agoMerge "Add high limit check for unsigned parameters"
John Koleszar [Tue, 21 Sep 2010 12:36:46 +0000 (05:36 -0700)]
Merge "Add high limit check for unsigned parameters"

14 years agoMerge "Restructure multi-threaded decoder"
Yunqing Wang [Tue, 21 Sep 2010 12:00:30 +0000 (05:00 -0700)]
Merge "Restructure multi-threaded decoder"

14 years agoUse movq instead of movdqu.
Fritz Koenig [Mon, 20 Sep 2010 16:30:49 +0000 (09:30 -0700)]
Use movq instead of movdqu.

Movdqu is more expensive (throughput, uops) than movq.  Minimal
impact for newer big cores, but ~2.25% gain on Atom.

Change-Id: I62c80bb1cc01d8a91c350c4c7719462809a4ef7f

14 years agoMerge "Better choice of instruction filter mask comparision."
Fritz Koenig [Mon, 20 Sep 2010 18:01:51 +0000 (11:01 -0700)]
Merge "Better choice of instruction filter mask comparision."

14 years agoMerge "reorder data to use wider instructions"
Johann [Mon, 20 Sep 2010 17:47:33 +0000 (10:47 -0700)]
Merge "reorder data to use wider instructions"

14 years agoMerge "Update NEON wide idcts"
Johann [Mon, 20 Sep 2010 17:47:22 +0000 (10:47 -0700)]
Merge "Update NEON wide idcts"

14 years agoBetter choice of instruction filter mask comparision.
Fritz Koenig [Wed, 15 Sep 2010 21:07:32 +0000 (14:07 -0700)]
Better choice of instruction filter mask comparision.

Use pmaxub instead of a combination of psubusb/por to
determine if any comparisons go over the limit.

Change-Id: I3f0bd7d2aabe5fee9ba6620508e2b60605abcb82

14 years agoAdd high limit check for unsigned parameters
Guillermo Ballester Valor [Fri, 11 Jun 2010 18:33:49 +0000 (14:33 -0400)]
Add high limit check for unsigned parameters

The patch related with issue #55 (5a72620) fixed some warnings, but the
fix was not optimal. It actually was a trick to confuse compiler rather
than a fix.

This patch fixes it by creating a new macro used when needed just a high
limit check for an unsigned.

Change-Id: I94b322e0f7fb07604b3b1df1f9321185f48cfcb5

14 years agoreorder data to use wider instructions
Johann [Thu, 9 Sep 2010 19:55:19 +0000 (15:55 -0400)]
reorder data to use wider instructions

the previous commit laid the groundwork by doing two sets of idcts
together. this moved that further by grouping the interesting data
(q[0], q+16[0]) together to allow using wider instructions. also
managed to drop a few instructions by recognizing that the constant
for sinpi8sqrt2 could be downshifted all the time which avoided a
dowshift as well as workarounds for a function which only accepted
signed data

looks like a modest gain for performance: at qcif, went from ~180
fps to ~183
Change-Id: I842673f3080b8239e026cc9b50346dbccbab4adf

14 years agoRestructure multi-threaded decoder
Yunqing Wang [Thu, 16 Sep 2010 18:08:52 +0000 (14:08 -0400)]
Restructure multi-threaded decoder

On each MB, loopfiltering is done right after MB decoding. This
combines two loops in multi-threaded code into one, which reduces
number of synchronizations to half.

The above-row/left-col data are saved in temp buffers for
next-row/next MB decoding.

Tests on 4-core gLucid machine showed 10% decoder performance
gain with threads=4 (tulip clip). Testing on other platforms
isn't done yet.

Change-Id: Id18ea7c1e84965dabea65d4c01ca5bc056ddeac9

14 years agocleanup: remove unused xprintf
John Koleszar [Thu, 16 Sep 2010 17:13:31 +0000 (13:13 -0400)]
cleanup: remove unused xprintf

These files aren't currently used, and we can get them back if we
need them.

Change-Id: I62aa3bff828e491a80c80eeb84a7c44903df29b5

14 years agoReduce size of tokenizer tables
John Koleszar [Thu, 16 Sep 2010 14:00:04 +0000 (10:00 -0400)]
Reduce size of tokenizer tables

This patch reduces the size of the global tables maintained by the
tokenizer to 16k from 80k-96k. See issue #177.

Change-Id: If0275d5f28389af11ac83c5d929d1157cde90fbe

14 years agoModify GET_GOT macro for performance.
Fritz Koenig [Tue, 14 Sep 2010 22:46:37 +0000 (15:46 -0700)]
Modify GET_GOT macro for performance.

GET_GOT was producing a zero length call.  This resulted in
pipeline flushes occuring when returing from the assembly
functions.  Masked on out of order cores, but evident on
Atom cores.

Change-Id: I8c375af313e8a169c77adbaf956693c0cfeb5ccd

14 years agoRemoved unnecessary pxor.
Fritz Koenig [Tue, 14 Sep 2010 01:34:34 +0000 (18:34 -0700)]
Removed unnecessary pxor.

There is no need to make sure that the lower byte of the
register is 0 because the downshift by 11 overwrites that byte.

Change-Id: I89cbf004b2ff532a2c68e0dc399c45a49cdad5a1

14 years agoMerge "Make block access to frame buffer sequential"
Fritz Koenig [Mon, 13 Sep 2010 18:04:22 +0000 (11:04 -0700)]
Merge "Make block access to frame buffer sequential"

14 years agoconfigure: support for ppc32-linux-gcc
John Koleszar [Mon, 13 Sep 2010 13:04:55 +0000 (09:04 -0400)]
configure: support for ppc32-linux-gcc

Fixes issue 89. Thanks to josejx for the patch.

Change-Id: I7e664fed703b49f2fb3af4c5e6ce1173742000c2

14 years agocosmetics: expand tabs in configure
John Koleszar [Mon, 13 Sep 2010 13:00:24 +0000 (09:00 -0400)]
cosmetics: expand tabs in configure

Change-Id: I88ddb0afb56ef2be8184b56fe125ad938ead7a84

14 years agoMake block access to frame buffer sequential
Fritz Koenig [Fri, 10 Sep 2010 23:27:28 +0000 (16:27 -0700)]
Make block access to frame buffer sequential

Sequentially accessing memory from a low address to a high
address should make it easier for the processor to predict
the cache.

Change-Id: I1921ce996bdd547144fe864fea6435f527f5842d

14 years agoMerge "Improved subset block search"
Scott LaVarnway [Thu, 9 Sep 2010 18:51:29 +0000 (11:51 -0700)]
Merge "Improved subset block search"

14 years agoImproved subset block search
Scott LaVarnway [Thu, 9 Sep 2010 18:42:48 +0000 (14:42 -0400)]
Improved subset block search

Improved the subset block search and fill.  (about 3% improvement for
32 bit)  Modified/merged the code in order to create
vp8_read_mb_modes_mv which can decode the modes/mvs on a macroblock
level. This will allow the decode loop (in the future) to decode
modes/mvs on a frame, row, or mb level.

Change-Id: If637d994b508792f846d39b5d44a7bf9aa5cddf3

14 years agoUpdate NEON wide idcts
Johann [Tue, 7 Sep 2010 18:21:27 +0000 (14:21 -0400)]
Update NEON wide idcts

Expand 93c32a55 which used SSE2 instructions to do two
idct/dequant/recons at a time to NEON. Initial working
commit. More work needs to be put into rearranging and
interlacing the data to take advantage of quadword
operations, which is when we'll hopefully see a much
better boost

Change-Id: I86d59d96f15e0d0f9710253e2c098ac2ff2865d1

14 years agoFix GF interval for non-lagged ARFs
John Koleszar [Thu, 9 Sep 2010 16:57:23 +0000 (12:57 -0400)]
Fix GF interval for non-lagged ARFs

When ARFs are enabled in non-lagged compress modes, the GF interval
was being reset to zero. Non-lagged ARF updates were enabled in commit
63ccfbd, but this incorrect GF interval caused a quality regression.

Change-Id: I615c3b493f4ce2127044f4e68d0bcb07d6b730c3

14 years agoMerge branch 'master' of git://review.webmproject.org/libvpx
Fritz Koenig [Thu, 9 Sep 2010 15:54:21 +0000 (08:54 -0700)]
Merge branch 'master' of git://review.webmproject.org/libvpx

14 years agoUse WebM in copyright notice for consistency
John Koleszar [Thu, 9 Sep 2010 12:16:39 +0000 (08:16 -0400)]
Use WebM in copyright notice for consistency

Changes 'The VP8 project' to 'The WebM project', for consistency
with other webmproject.org repositories.

Fixes issue #97.

Change-Id: I37c13ed5fbdb9d334ceef71c6350e9febed9bbba

14 years agoSkip unnecessary search of identical frames
Jim Bankoski [Thu, 22 Jul 2010 20:07:13 +0000 (16:07 -0400)]
Skip unnecessary search of identical frames

vp8_get_compressed_data() was defeating logic in
encode_frame_to_datarate() that determined the reference buffers to
search and forcing all frames to be eligible to search. In cases
where buffers have identical contents, this is unnecessary extra
work.

Change-Id: I9e667ac39128ae32dc455a3db4c62e3efce6f114

14 years agoEnable ARFs for non-lagged compress
Jim Bankoski [Thu, 22 Jul 2010 20:07:13 +0000 (16:07 -0400)]
Enable ARFs for non-lagged compress

ARFs were explicitly disabled except in lagged compress mode. New
ARF logic allows for the ARF buffer to hold an older golden frame,
which does not require lagged compress.

Change-Id: I1dff82b6f53e8311f1e0514b1794ae05919d5f79

14 years agoBilinear subpixel optimizations for ssse3.
Fritz Koenig [Tue, 7 Sep 2010 17:52:54 +0000 (10:52 -0700)]
Bilinear subpixel optimizations for ssse3.

Used pmaddubsw for multiply and add of two filter taps
at once for 16x16 and 8x8 blocks.

Change-Id: Idccf2d6e094561624407b109fa7e80ba799355ea

14 years agoReduced the size of MB_MODE_INFO
Scott LaVarnway [Thu, 2 Sep 2010 20:17:52 +0000 (16:17 -0400)]
Reduced the size of MB_MODE_INFO

Moved partition_bmi and partition_count out of MB_MODE_INFO and
placed into MACROBLOCK.  Also reduced the size of other members
of the MB_MODE_INFO struct.  For 1080p, the memory was reduced
by 1,209,516 bytes.  The decoder performance appeared to improve
by 3% for the clip used.
Note:  The main goal for this change is to improve the decoder
performance.  The encoder will be revisited at a later date for
further structure cleanup.

Change-Id: I4733621292ee9cc3fffa4046cb3fd4d99bd14613

14 years agoUpdate CHANGELOG for v0.9.2 release
John Koleszar [Thu, 2 Sep 2010 18:56:47 +0000 (14:56 -0400)]
Update CHANGELOG for v0.9.2 release

Change-Id: I184e927987544e9f34f890249b589ea13a93a330

14 years agoUpdate AUTHORS
John Koleszar [Thu, 2 Sep 2010 17:40:43 +0000 (13:40 -0400)]
Update AUTHORS

Change-Id: I0395ffa107651a773fd11d12682ab9372f76a90b

14 years agoWhitespace: nuke CRLFs
John Koleszar [Thu, 2 Sep 2010 17:33:01 +0000 (13:33 -0400)]
Whitespace: nuke CRLFs

Change-Id: I8b9fdf9875a8fcff4cb49a3357ce44f18108c2e7

14 years agoUse native win32 timers on mingw
John Koleszar [Thu, 2 Sep 2010 16:03:51 +0000 (12:03 -0400)]
Use native win32 timers on mingw

Changed to use QueryPerformanceCounter on Windows rather than only
when building with MSVC, so that MSVC can link libs built with
MinGW.

Fixes issue #149.

Change-Id: Ie2dc7edc8f4d096cf95ec5ffb1ab00f2d67b3e7d

14 years agoFix target detection on mingw32
John Koleszar [Thu, 2 Sep 2010 15:51:45 +0000 (11:51 -0400)]
Fix target detection on mingw32

gcc -dumpmachine returns only 'mingw32'

Change-Id: I774d05a97c5131fc12009e436712c319e54490a5

14 years agoUse -fno-common for mingw
John Koleszar [Thu, 2 Sep 2010 15:17:05 +0000 (11:17 -0400)]
Use -fno-common for mingw

Fixes http://code.google.com/p/webm/issues/detail?id=112

Thanks to Ramiro Polla for the issue/fix.

Change-Id: I7f7b547a4ea3270e183f59280510066cc29a619e

14 years agoencoder: remove postproc dependency
James Zern [Fri, 20 Aug 2010 20:06:56 +0000 (16:06 -0400)]
encoder: remove postproc dependency

Remove the dependency on postproc.c for the encoder in general, the only
unchecked need for it is when CONFIG_PSNR is enabled. All other cases
are already wrapped in CONFIG_POSTPROC. In the CONFIG_PSNR case the file
will still be included.

Additionally, when VP8_SET_POSTPROC is used with the encoder when post
processing has been disabled an error will be returned.

This addresses issue #153.

Change-Id: Ia6dfe20167f7077734a6058cbd1d794550346089

14 years agoMerge "added separate rounding/zbin constants for 2nd order"
John Koleszar [Thu, 2 Sep 2010 15:42:29 +0000 (08:42 -0700)]
Merge "added separate rounding/zbin constants for 2nd order"

14 years agoMerge "Disable frame dropping by default"
John Koleszar [Thu, 2 Sep 2010 15:41:46 +0000 (08:41 -0700)]
Merge "Disable frame dropping by default"

14 years agoadded separate rounding/zbin constants for 2nd order
Yaowu Xu [Mon, 16 Aug 2010 23:16:24 +0000 (16:16 -0700)]
added separate rounding/zbin constants for 2nd order

This allows experiments of using different rounding and
zerobin constants for 2nd order blocks.

Change-Id: Idd829adba3edd1f713c66151a8d29bb245e33a71

14 years agoDisable frame dropping by default
John Koleszar [Thu, 2 Sep 2010 13:32:03 +0000 (09:32 -0400)]
Disable frame dropping by default

This is not the behavior that most users expect.

Change-Id: I226126ea400c22cf1f7918e80ea7fe0771c569cb

14 years agoFix rare deadlock before loop filter
Frank Galligan [Wed, 1 Sep 2010 20:40:18 +0000 (16:40 -0400)]
Fix rare deadlock before loop filter

There was an extremely rare deadlock that happened when one thread
was waiting to start the loop filter on frame n while the other
threads were starting to work on frame n+1.

Change-Id: Icc94f728b3b6663405435640d9a2996735ba19ef

14 years agoMerge "Improved Force Key Frame Behaviour"
Paul Wilkins [Wed, 1 Sep 2010 09:45:12 +0000 (02:45 -0700)]
Merge "Improved Force Key Frame Behaviour"

14 years agoReplace sleep(0) calls in multi-threaded decoder
Yunqing Wang [Mon, 30 Aug 2010 22:16:04 +0000 (18:16 -0400)]
Replace sleep(0) calls in multi-threaded decoder

This is a workaround for gLucid problem.

Change-Id: I188a016a07e4c2ea212444c5a6284ff3c48a5caa

14 years agoImproved Force Key Frame Behaviour
Paul Wilkins [Fri, 20 Aug 2010 11:27:26 +0000 (12:27 +0100)]
Improved Force Key Frame Behaviour

These changes improve the behaviour of the code with
forced key frames sent in by a calling application.

The sizing of the frames is still suboptimal for two pass in
particular but the behaviour is much better than it was.

Change-Id: I35fae610c67688ccc69d11f385e87dfc884e65a1

14 years agofollowup arm patch
Johann [Thu, 26 Aug 2010 20:11:30 +0000 (16:11 -0400)]
followup arm patch

make the arm asm detokenizer work with the new structures

Change-Id: I7cd92c2a018ec24032bb1cfd1bb9739bc84b444a

14 years agoChanged above and left context data layout
Scott LaVarnway [Tue, 31 Aug 2010 14:49:57 +0000 (10:49 -0400)]
Changed above and left context data layout

The main reason for the change was to reduce cycles in the token
decoder. (~1.5% gain for 32 bit)  This layout should be more
cache friendly.

As a result of this change, the encoder had to be updated.

Change-Id: Id5e804169d8889da0378b3a519ac04dabd28c837
Note: dixie uses a similar layout

14 years agoMerge "Fix harmless off-by-1 error."
John Koleszar [Mon, 30 Aug 2010 19:40:42 +0000 (12:40 -0700)]
Merge "Fix harmless off-by-1 error."

14 years agoMerge "Fix two-pass framrate for Y4M input."
John Koleszar [Mon, 30 Aug 2010 19:40:37 +0000 (12:40 -0700)]
Merge "Fix two-pass framrate for Y4M input."

14 years agoMerge "increase rate control buffer level precision"
John Koleszar [Mon, 30 Aug 2010 14:49:35 +0000 (07:49 -0700)]
Merge "increase rate control buffer level precision"

14 years agoFix harmless off-by-1 error.
Timothy B. Terriberry [Wed, 5 May 2010 23:14:36 +0000 (19:14 -0400)]
Fix harmless off-by-1 error.

The memory being zeroed in vp8_update_mode_info_border() was just
 allocated with calloc, and so the entire function is actually
 redundant, but it should be made correct in case someone expects
 it to actually work in the future.

Change-Id: If7a84e489157ab34ab77ec6e2fe034fb71cf8c79

14 years agoFix two-pass framrate for Y4M input.
Timothy B. Terriberry [Fri, 27 Aug 2010 22:21:22 +0000 (15:21 -0700)]
Fix two-pass framrate for Y4M input.

The timebase was being set to the value in the Y4M file on each
 pass, but only doubled to account for the altref placement on
 the first past.
This avoids reseting it on the second pass.

Change-Id: Ie342639bad1ffe9c2214fbbaaded72cfed835b42

14 years agoMerge "Allow --cpu= to work for x86."
Fritz Koenig [Wed, 25 Aug 2010 18:39:59 +0000 (11:39 -0700)]
Merge "Allow --cpu= to work for x86."

14 years agoAllow --cpu= to work for x86.
Fritz Koenig [Tue, 24 Aug 2010 23:27:49 +0000 (16:27 -0700)]
Allow --cpu= to work for x86.

--cpu was already implemented for most of our embedded
platforms, this just extends it to x86.  Corner case for
Atom processor as it doesn't respond to the --march=
option under icc.

Change-Id: I2d57a7a6e9d0b55c0059e9bc46cfc9bf9468c185

14 years agoclean up compiler warnings
Johann [Tue, 24 Aug 2010 22:23:16 +0000 (18:23 -0400)]
clean up compiler warnings

did a test compile with clang and got rid of some warnings that have
been annoying me for a while:
vp8/decoder/detokenize.c: In function 'vp8_init_detokenizer':
vp8/decoder/detokenize.c:121: warning: assignment discards qualifiers from pointer target type
vp8/decoder/detokenize.c:122: warning: assignment discards qualifiers from pointer target type
vp8/decoder/detokenize.c:123: warning: assignment from incompatible pointer type
vp8/decoder/detokenize.c:124: warning: assignment discards qualifiers from pointer target type
vp8/decoder/detokenize.c:125: warning: assignment discards qualifiers from pointer target type
vp8/decoder/detokenize.c:128: warning: assignment discards qualifiers from pointer target type
vp8/decoder/detokenize.c:129: warning: assignment discards qualifiers from pointer target type
vp8/decoder/detokenize.c:130: warning: assignment discards qualifiers from pointer target type
vp8/decoder/detokenize.c:131: warning: assignment discards qualifiers from pointer target type

Change-Id: I78ddab176fe47cbeed30379709dc7bab01c0c2e4

14 years agoupdate structures
Johann [Mon, 23 Aug 2010 17:35:26 +0000 (13:35 -0400)]
update structures

mbmi and eob moved in previous commits

Change-Id: I30a2eba36addf89ee50b406ad4afdd059a832711

14 years agoRework idct calling structure.
Fritz Koenig [Fri, 20 Aug 2010 17:58:19 +0000 (10:58 -0700)]
Rework idct calling structure.

Moving the eob structure allows for a non-struct based
function to handle decoding an entire mb of
idct/dequant/recon data.  This allows for SIMD functions
to idct/dequant/recon multiple blocks at once.

SSE2 implementation gives 3% gain on Atom.

Change-Id: I8a8f3efd546ea4e0535f517d94f347cfb737c9c2

14 years agoincrease rate control buffer level precision
John Koleszar [Fri, 20 Aug 2010 15:04:10 +0000 (11:04 -0400)]
increase rate control buffer level precision

The external API exposes the RC initial/optimal/full buffer level in
milliseconds, but this value was truncated internally to seconds. This
patch allows the use of the full precision during the conversion from
time to bits.

Change-Id: If8dd2a87614c05747f81432cbe75dd9e6ed2f04e

14 years agoRevert "Removed ssse3 sixtap code"
Jim Bankoski [Thu, 19 Aug 2010 19:50:29 +0000 (15:50 -0400)]
Revert "Removed ssse3 sixtap code"

This reverts commit 6ea5bb85cd1547b846f4c794e8684de5abcf9f62.

14 years agocleanup simple loop filter
Johann [Thu, 19 Aug 2010 17:37:40 +0000 (13:37 -0400)]
cleanup simple loop filter

move some things around, reorder some instructions

constant 0 is used several times. load it once per call in horiz,
once per loop in vert.

separate saturating instructions to avoid stalls.

just use one usub8 call to set GE flags, rather than uqsub8 followed by
usub8 w/ 0

document some stalls for further consideration

Change-Id: Ic3877e0ddbe314bb8a17fd5db73501a7d64570ec

14 years agoMerge "fix armv6 simpleloop filter"
Johann [Thu, 19 Aug 2010 15:31:57 +0000 (08:31 -0700)]
Merge "fix armv6 simpleloop filter"

14 years agofix armv6 simpleloop filter
Johann [Thu, 19 Aug 2010 15:29:21 +0000 (11:29 -0400)]
fix armv6 simpleloop filter

test cases were causing a crash because the count was being read
incorrectly. after fixing that, noticed that the output was not
matching. fixed that.

Change-Id: Idb0edb887736bd566a3cf6d4aa1a03ea8d20eb27

14 years agoRemoved ssse3 sixtap code
Scott LaVarnway [Wed, 18 Aug 2010 19:29:38 +0000 (15:29 -0400)]
Removed ssse3 sixtap code

Change-Id: I0f20fbb898ee31eb94a143471aa6f1ca17a229a4

14 years agoMerge "store more vars than we removed"
John Koleszar [Mon, 16 Aug 2010 14:54:48 +0000 (07:54 -0700)]
Merge "store more vars than we removed"