platform/upstream/libvpx.git
13 years agoMerge "update arm idct functions"
Fritz Koenig [Mon, 26 Jul 2010 13:05:39 +0000 (06:05 -0700)]
Merge "update arm idct functions"

13 years agoMerge changes I896fe6f9,I90d8b167
Fritz Koenig [Mon, 26 Jul 2010 13:05:30 +0000 (06:05 -0700)]
Merge changes I896fe6f9,I90d8b167

* changes:
  Change the x86 idct functions to do reconstruction at the same time
  Combine idct and reconstruction steps

13 years agoupdate arm idct functions
Johann [Fri, 23 Jul 2010 17:42:30 +0000 (13:42 -0400)]
update arm idct functions

Jeff Muizelaar posted some changes to the idct/reconstruction c code.
This is the equivalent update for the arm assembly.

This shows a good boost on v6, and a minor boost on neon.
Here are some numbers for highway in qcif, 2641 frames:
HEAD neon: ~161 fps
new neon:  ~162 fps
HEAD v6:   ~102 fps
new v6:    ~106 fps

The following functions have been updated for armv6 and neon:
vp8_dc_only_idct_add
vp8_dequant_idct_add
vp8_dequant_dc_idct_add

Conflicts:

vp8/decoder/arm/armv6/dequantdcidct_v6.asm
vp8/decoder/arm/armv6/dequantidct_v6.asm

Resolved by removing these files. When I rewrote the functions, I also
moved the files to dequant_dc_idct_v6.asm/dequant_idct_v6.asm

Change-Id: Ie3300df824d52474eca1a5134cf22d8b7809a5d4

13 years agoDon't dereference ctx->priv if it hasn't been setup correctly.
Fredrik Söderquist [Mon, 7 Jun 2010 16:24:41 +0000 (18:24 +0200)]
Don't dereference ctx->priv if it hasn't been setup correctly.

13 years agoOnly touch ctx->priv if vp8_mmap_alloc succeeded.
Fredrik Söderquist [Mon, 7 Jun 2010 16:20:47 +0000 (18:20 +0200)]
Only touch ctx->priv if vp8_mmap_alloc succeeded.

13 years agoChange the x86 idct functions to do reconstruction at the same time
Jeff Muizelaar [Thu, 3 Jun 2010 14:16:07 +0000 (10:16 -0400)]
Change the x86 idct functions to do reconstruction at the same time

Change-Id: I896fe6f9664e6849c7cee2cc6bb4e045eb42540f

13 years agoCombine idct and reconstruction steps
Jeff Muizelaar [Fri, 28 May 2010 18:28:12 +0000 (14:28 -0400)]
Combine idct and reconstruction steps

This moves the prediction step before the idct and combines the idct and
reconstruction steps into a single step. Combining them seems to give an
overall decoder performance improvement of about 1%.

Change-Id: I90d8b167ec70d79c7ba2ee484106a78b3d16e318

13 years agoSwap alt/gold/new/last frame buffer ptrs instead of copying.
Fritz Koenig [Thu, 22 Jul 2010 12:07:32 +0000 (08:07 -0400)]
Swap alt/gold/new/last frame buffer ptrs instead of copying.

At the end of the decode, frame buffers were being copied.
The frames are not updated after the copy, they are just
for reference on later frames.  This change allows multiple
references to the same frame buffer instead of copying it.

Changes needed to be made to the encoder to handle this.  The
encoder is still doing frame buffer copies in similar places
where pointer reference could be done.

Change-Id: I7c38be4d23979cc49b5f17241ca3a78703803e66

13 years agoMerge commit 'refs/changes/51/351/1' of ssh://review.webmproject.org:29418/libvpx...
Paul Wilkins [Fri, 23 Jul 2010 16:45:26 +0000 (17:45 +0100)]
Merge commit 'refs/changes/51/351/1' of ssh://review.webmproject.org:29418/libvpx into KfRateBugMerged

13 years agoMerge "Make the quantizer exact."
Yaowu Xu [Fri, 23 Jul 2010 16:26:26 +0000 (09:26 -0700)]
Merge "Make the quantizer exact."

13 years agoRate control bug with long key frame interval.
Paul Wilkins [Fri, 23 Jul 2010 16:01:12 +0000 (17:01 +0100)]
Rate control bug with long key frame interval.

In two pass encodes, the calculation of the number of bits
allocated to a KF group had the potential to overflow for high data
rates if the interval is very long.

We observed the problem in one test clip where there was one
section where there was an 8000 frame gap between key frames.

Change-Id: Ic48eb86271775d7573b4afd166b567b64f25b787

13 years agoMake the quantizer exact.
Timothy B. Terriberry [Tue, 29 Jun 2010 00:15:09 +0000 (17:15 -0700)]
Make the quantizer exact.

This replaces the approximate division-by-multiplication in the
 quantizer with an exact one that costs just one add and one
 shift extra.
The asm versions have not been updated in this patch, and thus
 have been disabled, since the new method requires different
 multipliers which are not compatible with the old method.

Change-Id: I53ac887af0f969d906e464c88b1f4be69c6b1206

13 years ago80 character line length on Arnr LUT
Paul Wilkins [Fri, 23 Jul 2010 15:47:54 +0000 (16:47 +0100)]
80 character line length on Arnr LUT

Tweaked table to fit to 80 characters.

Change-Id: Ie6ba80e0b31b33e23d2bf78599abe223369fcefb

13 years agoRemove CONFIG_NEW_TOKENS files.
Fritz Koenig [Thu, 22 Jul 2010 13:46:54 +0000 (09:46 -0400)]
Remove CONFIG_NEW_TOKENS files.

These files were out of date and no longer maintained.
Token decoding has implemented the no-crash code which
is incompatible with this arm assembly code.

Change-Id: Ibf729886c56fca48181af60b44bda896c30023fc

13 years agoChange devenv.com command line.
Tom Finegan [Thu, 22 Jul 2010 21:51:17 +0000 (17:51 -0400)]
Change devenv.com command line.

Change /build to -build to avoid problems when builds are run within
msys bash shells.

Change-Id: Ie68d72f702adad00d99be8a01c7a388c3af7657d

14 years agoAdd vs9 targets.
Tom Finegan [Thu, 22 Jul 2010 17:34:25 +0000 (13:34 -0400)]
Add vs9 targets.

Add targets x86-win32-vs9 and x86_64-win64-vs9 for support of Visual
Studio 2008-- this removes the need to convert the vs8 projects before
using them within the IDE.

Change-Id: Idb83e2ae701e07d98db1be71638280a493d770a2

14 years agoMerge "limit range checking code for L[k] to CONFIG_DEBUG. patch by timeless@gmail...
Johann [Wed, 21 Jul 2010 19:59:39 +0000 (12:59 -0700)]
Merge "limit range checking code for L[k] to CONFIG_DEBUG. patch by timeless@gmail.com"

14 years agoMerge "Improve the accuracy of forward walsh-hadamard transform"
Yaowu Xu [Mon, 19 Jul 2010 14:50:26 +0000 (07:50 -0700)]
Merge "Improve the accuracy of forward walsh-hadamard transform"

14 years agoARNR Lookup Table.
Paul Wilkins [Mon, 19 Jul 2010 12:28:34 +0000 (13:28 +0100)]
ARNR Lookup Table.

Change submitted for Adrian Grange. Convert threshold
calculation in ARNR filter to a lookup table.

Change-Id: I12a4bbb96b9ce6231ce2a6ecc2d295610d49e7ec

14 years agoParameter limit change.
Paul Wilkins [Mon, 19 Jul 2010 10:32:09 +0000 (11:32 +0100)]
Parameter limit change.

Change maximum ARNR filter width to 15.

Change-Id: I3b72450ea08e96287445ec18810630ee2292954c

14 years agoRate control fix for ARNR filtered frames.
Paul Wilkins [Mon, 19 Jul 2010 13:10:07 +0000 (14:10 +0100)]
Rate control fix for ARNR filtered frames.

Previously we had assumed that it was necessary to give a full frame's
bit allocation to the alt ref frame if it has been created through temporal
filtering. This is not the case. The active max quantizer control
insures that sufficient bits are allocated if needed and allocating a
full frame's worth of bits creates an excessive overhead for the ARF.

Change-Id: I83c95ed7bc7ce0e53ccae6ff32db5a97f145937a

14 years agoFix: Incorrect 'cols' calculation in temporal filter.
Paul Wilkins [Fri, 16 Jul 2010 14:57:17 +0000 (15:57 +0100)]
Fix: Incorrect 'cols' calculation in temporal filter.

Change-Id: I37f10fbe4fbb505c1d34980a59af3e817c287e22

14 years agolimit range checking code for L[k] to CONFIG_DEBUG. patch by timeless@gmail.com
Michael Kohler [Mon, 12 Jul 2010 16:41:45 +0000 (18:41 +0200)]
limit range checking code for L[k] to CONFIG_DEBUG. patch by timeless@gmail.com

14 years agomsvs: disable CRT deprecation warnings
John Koleszar [Tue, 22 Jun 2010 13:45:43 +0000 (09:45 -0400)]
msvs: disable CRT deprecation warnings

Disables the warnings produced for so-called insecure standard C
functions.

Change-Id: I0e6f448e27f899a0eaefc1151185945fbe15718e

14 years agoMerge "Fix misspelled "paramter" in vpx_codec_internal.h" to "parameter"."
John Koleszar [Wed, 7 Jul 2010 23:57:37 +0000 (16:57 -0700)]
Merge "Fix misspelled "paramter" in vpx_codec_internal.h" to "parameter"."

14 years agoMerge "Fix misspelled "skiped" in onyxc_int.h to "skipped"."
John Koleszar [Wed, 7 Jul 2010 23:57:08 +0000 (16:57 -0700)]
Merge "Fix misspelled "skiped" in onyxc_int.h to "skipped"."

14 years agoFix a compiling error on armv6
Yaowu Xu [Wed, 7 Jul 2010 17:26:30 +0000 (10:26 -0700)]
Fix a compiling error on armv6

The issue was caused by a bad merge in Change I5559d1e8

Change-Id: I6563f652bc1500202de361f8f51d11cc6ddf3331

14 years agoFix misspelled "paramter" in vpx_codec_internal.h" to "parameter".
Michael Kohler [Wed, 7 Jul 2010 17:49:58 +0000 (19:49 +0200)]
Fix misspelled "paramter" in vpx_codec_internal.h" to "parameter".

Signed-off-by: Michael Kohler <michaelkohler@live.com>
14 years agoFix misspelled "skiped" in onyxc_int.h to "skipped".
Michael Kohler [Wed, 7 Jul 2010 17:48:12 +0000 (19:48 +0200)]
Fix misspelled "skiped" in onyxc_int.h to "skipped".

Signed-off-by: Michael Kohler <michaelkohler@live.com>
14 years agoFix bug in 1st pass motion compensation
Adrian Grange [Thu, 1 Jul 2010 13:17:04 +0000 (14:17 +0100)]
Fix bug in 1st pass motion compensation

In the case where the best reference mv is not (0,0) a secondary
search is carried out centered on (0,0). However, rather than
sending tmp_err into the search function, motion_error was
inadvertently passed.

As a result tmp_err remains set at INT_MAX and the (0,0)-based
search result will never be selected, even if it is better.

Change-Id: I3c82b246c8c82ba887b9d3fb4c9e0a0f2fe5a76c

14 years agoMerge "Further adjustment of RD behaviour with Q and Zbin."
Paul Wilkins [Thu, 1 Jul 2010 08:53:40 +0000 (01:53 -0700)]
Merge "Further adjustment of RD behaviour with Q and Zbin."

14 years agoMerge "ivfenc: correct fixed kf interval, --disable-kf"
John Koleszar [Thu, 1 Jul 2010 00:19:26 +0000 (17:19 -0700)]
Merge "ivfenc: correct fixed kf interval, --disable-kf"

14 years agoMerge "ARM WinCE VS8 build update"
John Koleszar [Wed, 30 Jun 2010 15:01:02 +0000 (08:01 -0700)]
Merge "ARM WinCE VS8 build update"

14 years agoMerge "Remove INLINE/FORCEINLINE"
John Koleszar [Wed, 30 Jun 2010 14:59:39 +0000 (07:59 -0700)]
Merge "Remove INLINE/FORCEINLINE"

14 years agoUpdate loopfilter frame/filter/sharp info for multithread
John Koleszar [Wed, 30 Jun 2010 14:22:40 +0000 (10:22 -0400)]
Update loopfilter frame/filter/sharp info for multithread

Change I9fd1a5a4 updated the multithreaded loopfilter to avoid
reinitializing several parameteres if they haven't changed from the
last frame, but the code to update the last frame's parameters wasn't
invoked in the multithreaded case.

Change-Id: Ia23d937af625c01dd739608e02d110f742b7e1f2

14 years agoMerge "Add loopfilter initialization fix in multithreading code"
Yunqing Wang [Wed, 30 Jun 2010 13:56:36 +0000 (06:56 -0700)]
Merge "Add loopfilter initialization fix in multithreading code"

14 years agoAdd loopfilter initialization fix in multithreading code
Yunqing Wang [Wed, 30 Jun 2010 13:42:39 +0000 (09:42 -0400)]
Add loopfilter initialization fix in multithreading code

Modified loopfilter initialization to avoid unnecessary operations.

Change-Id: I9fd1a5a49edc1cb8116c2a72a6908b1e437459ec

14 years agoMerge "Fixed buffer selection for UV in AltRef filtering"
Adrian Grange [Wed, 30 Jun 2010 09:43:47 +0000 (02:43 -0700)]
Merge "Fixed buffer selection for UV in AltRef filtering"

14 years agoImprove SSE2 loopfilter functions
Yunqing Wang [Fri, 25 Jun 2010 13:18:11 +0000 (09:18 -0400)]
Improve SSE2 loopfilter functions

Restructured and rewrote SSE2 loopfilter functions. Combined u and
v into one function to take advantage of SSE2 128-bit registers.
Tests on test clips showed a 4% decoder performance improvement on
Linux desktop.

Change-Id: Iccc6669f09e17f2224da715f7547d6f93b0a4987

14 years agoARM WinCE VS8 build update
James Zern [Tue, 29 Jun 2010 16:02:19 +0000 (12:02 -0400)]
ARM WinCE VS8 build update

The generated project is vpx.vcproj, change vpx_decoder references to
match. Remove .rules file dependency as it will be pulled from the
source tree.

Change-Id: I679db2748b37adae3bafd764dba8575fc3abde72

14 years agoFurther adjustment of RD behaviour with Q and Zbin.
Paul Wilkins [Tue, 29 Jun 2010 11:15:54 +0000 (12:15 +0100)]
Further adjustment of RD behaviour with Q and Zbin.

Following conversations with Tim T (Derf) I ran a large number of
tests comparing the existing polynomial expression with a simpler
^2 variant. Though the polynomial was sometimes a little better at
the extremes of Q it was possible to get close for most clips and
even a little better on some.

This code also changes the way the RD multiplier is calculated
when the ZBIN is extended to use a variant of the same ^2
expression.

I hope that this simpler expression will be easier to tune further
as we expand our test set and consider adjustments based on content.

Change-Id: I73b2564346e74d1332c33e2c1964ae093437456c

14 years agoImprove the accuracy of forward walsh-hadamard transform
Yaowu Xu [Tue, 29 Jun 2010 05:03:43 +0000 (22:03 -0700)]
Improve the accuracy of forward walsh-hadamard transform

Besides the slight improvement in round trip error. This
also fixes a sign bias in the forward transform, so the
round trip errors are evenly distributed between +1s and
-1s. The old bias seemed to work well with the dc sign bias
in old fdct,  which no longer exist in the improved fdct.

Change-Id: I8635e7be16c69e69a8669eca5438550d23089cef

14 years agoFixed buffer selection for UV in AltRef filtering
Adrian Grange [Mon, 28 Jun 2010 11:00:11 +0000 (12:00 +0100)]
Fixed buffer selection for UV in AltRef filtering

Corrected setting of "which_buffer" for U & V cases to match that
used for Y, i.e. to refer to the temporally most recent frame of
those to be filtered.

Change-Id: Idf94b287ef47a05f060da3e61134a0b616adcb6b

14 years agoAdded first-pass sse2 version of Yaowu's new fdct.
Scott LaVarnway [Thu, 24 Jun 2010 17:11:30 +0000 (13:11 -0400)]
Added first-pass sse2 version of Yaowu's new fdct.

Change-Id: Ib479210067510162879c368428b92690591120b2

14 years agoRedo the forward 4x4 dct
Yaowu Xu [Wed, 16 Jun 2010 19:52:18 +0000 (12:52 -0700)]
Redo the forward 4x4 dct

The new fdct lowers the round trip sum squared error for a
4x4 block ~0.12. or ~0.008/pixel. For reference, the old
matrix multiply version has average round trip error 1.46
for a 4x4 block.

Thanks to "derf" for his suggestions and references.

Change-Id: I5559d1e81d333b319404ab16b336b739f87afc79

14 years agovp8cx : bestsad declared and initialized incorrectly.
Fritz Koenig [Thu, 24 Jun 2010 18:30:48 +0000 (14:30 -0400)]
vp8cx : bestsad declared and initialized incorrectly.

bestsad needs to be a int and set to INT_MAX because at the end
of the function it is compared to INT_MAX to determine if there
was a match in the function.

Change-Id: Ie80e88e4c4bb4a1ff9446079b794d14d5a219788

14 years agovp8cx : bestsad declared and initialized incorrectly.
Fritz Koenig [Thu, 24 Jun 2010 16:18:23 +0000 (12:18 -0400)]
vp8cx : bestsad declared and initialized incorrectly.

bestsad should be an int initialized to INT_MAX.  The optimized
SAD function expects a signed value for bestsad to use for comparison
and early loop termination.  When no match is made, which is
determined by a comparison of bestsad to INT_MAX, INT_MAX is returned.

14 years agoRemove INLINE/FORCEINLINE
John Koleszar [Thu, 24 Jun 2010 13:02:48 +0000 (09:02 -0400)]
Remove INLINE/FORCEINLINE

These are mostly vestigial, it's up to the compiler to decide what
should be inlined, and this collided with certain Windows platform SDKs.

Change-Id: I80dd35de25eda7773156e355b5aef8f7e44e179b

14 years agoconfigure: remove postproc-generic
John Koleszar [Thu, 24 Jun 2010 12:51:00 +0000 (08:51 -0400)]
configure: remove postproc-generic

This option is vestigial and is unreferenced.

Change-Id: I8bd27cb674c263e9a86fb43244003a9b9df3ca9c

14 years agoivfenc: correct fixed kf interval, --disable-kf
John Koleszar [Thu, 24 Jun 2010 12:41:51 +0000 (08:41 -0400)]
ivfenc: correct fixed kf interval, --disable-kf

ivfenc was setting the VPX_KF_FIXED mode when the kf_min_dist and
kf_max_dist parameters were set to each other. This flag actually means
that keyframes are disabled, and that name was deprecated to avoid
confusion such as this. Instead, a new option is exposed for setting the
VPX_KF_DISABLED mode, and the intervals are passed through to the codec,
which will do automatic placement at a fixed interval as expected.

Change-Id: I15abbec5936f39d5901878b4bc154372fbc23a43

14 years agoMerge "Remove deprecated `svnstat' rule from Makefile"
John Koleszar [Mon, 21 Jun 2010 17:00:36 +0000 (10:00 -0700)]
Merge "Remove deprecated `svnstat' rule from Makefile"

14 years agoFix breakout thresh computation for golden & AltRef frames
agrange [Mon, 21 Jun 2010 12:44:42 +0000 (13:44 +0100)]
Fix breakout thresh computation for golden & AltRef frames

1. Unavailability of each reference frame type should be tested
independently,
2. Also, only the VP8_GOLD_FLAG needs to be tested before setting
golden frame specific thresholds, and only VP8_ALT_FLAG needs
testing before setting thresholds relevant to the AltRef frame.
(Raised by gbvalor, in response to Issue 47)

Change-Id: I6a06fc2a6592841d85422bc1661e33349bb6c3b8

14 years agoRemove deprecated `svnstat' rule from Makefile
Giuseppe Scrivano [Mon, 21 Jun 2010 15:15:04 +0000 (17:15 +0200)]
Remove deprecated `svnstat' rule from Makefile

14 years agoChanged unary operator from ! to ~
agrange [Fri, 18 Jun 2010 14:58:18 +0000 (15:58 +0100)]
Changed unary operator from ! to ~

Since the intent is
to reset the appropriate bit in ref_frame_flags not to
test a logic condition. Prior result would always have
been ref_frame_flags being set to 0.
(Issue reported by dgohman, issue 47)

Change-Id: I2c12502ed74c73cf38e98c9680e0249c29e16433

14 years agoMoved DOUBLE_DIVIDE_CHECK to denominator (was on numerator)
agrange [Fri, 18 Jun 2010 14:18:09 +0000 (15:18 +0100)]
Moved DOUBLE_DIVIDE_CHECK to denominator (was on numerator)

The DOUBLE_DIVIDE_CHECK macro prevents from divide by 0,
so must be on the denominator to work as intended.

Change-Id: Ie109242d52dbb9a2c4bc1e11890fa51b5f87ffc7

14 years agoFix a linker error on x86-64 Linux when not using a version script.
Timothy B. Terriberry [Fri, 18 Jun 2010 02:33:52 +0000 (19:33 -0700)]
Fix a linker error on x86-64 Linux when not using a version script.

If the version script produced by the libvpx build system is not
 used when linking a shared library on x86-64 Linux, the constant
 data in the subpel filters produces R_X86_64_32 relocation errors
 due to the use of wrt rip addressing instead of
 wrt rip wrt ..gotpcrel.
Instead of adding a new macro for this addressing mode, this patch
 sets the ELF visibility of these symbols to "hidden", which
 allows wrt rip addressing to work without a text relocation.
This allows building a shared library without using the provided
 build system or a separate version script.
Fixes http://code.google.com/p/webm/issues/detail?id=46

Change-Id: Ie108f9d9a4352e5af46938bf4750d2302c1b2dc2

14 years agovp8_block_error_xmm: remove unnecessary instructions
Jim Bankoski [Wed, 16 Jun 2010 16:36:53 +0000 (12:36 -0400)]
vp8_block_error_xmm: remove unnecessary instructions

Remove a couple instructions from this function which weren't
necessary for correct execution.

Change-Id: Ib649674f140689f7e5c1530c35686241688a3151

14 years agoMerge "cosmetics: trim trailing whitespace"
John Koleszar [Fri, 18 Jun 2010 17:26:16 +0000 (10:26 -0700)]
Merge "cosmetics: trim trailing whitespace"

14 years agoMerge "Add x86_64-linux-icc target to build VP8 with icc"
Yunqing Wang [Fri, 18 Jun 2010 17:25:26 +0000 (10:25 -0700)]
Merge "Add x86_64-linux-icc target to build VP8 with icc"

14 years agoAdd x86_64-linux-icc target to build VP8 with icc
Yunqing Wang [Thu, 17 Jun 2010 17:34:19 +0000 (13:34 -0400)]
Add x86_64-linux-icc target to build VP8 with icc

Add a target for icc.

Change-Id: Ia1db82373d9c7268848bbb65c9483d408b9d933f

14 years agocosmetics: trim trailing whitespace
John Koleszar [Fri, 18 Jun 2010 16:39:21 +0000 (12:39 -0400)]
cosmetics: trim trailing whitespace

When the license headers were updated, they accidentally contained
trailing whitespace, so unfortunately we have to touch all the files
again.

Change-Id: I236c05fade06589e417179c0444cb39b09e4200d

14 years agoMerge "Change bitreader to use a larger window."
John Koleszar [Fri, 18 Jun 2010 01:08:36 +0000 (18:08 -0700)]
Merge "Change bitreader to use a larger window."

14 years agoCHANGELOG: 0.9.1 v0.9.1
John Koleszar [Thu, 17 Jun 2010 13:07:33 +0000 (09:07 -0400)]
CHANGELOG: 0.9.1

Change-Id: Icca54b9d51becc49255193801762e1936a07aa2d

14 years agoUpdate AUTHORS
John Koleszar [Wed, 16 Jun 2010 19:44:07 +0000 (15:44 -0400)]
Update AUTHORS

Change-Id: I1c6a275278788dfdc630ed436d2c770acfcbd097

14 years agoGenerate AUTHORS file with a script
John Koleszar [Wed, 16 Jun 2010 19:43:09 +0000 (15:43 -0400)]
Generate AUTHORS file with a script

This information is in git, so it's better to use that as a source than
updating this file manually. This script can be run manually at release
time for now, or we can set up a cron job sometime in the future.

Change-Id: I0344135ceb9c04ed14e2e2d939a93194e35973db

14 years agoMerge "Avoid encoding garbage when ivfenc encounters an unsupported Y4M file."
John Koleszar [Wed, 16 Jun 2010 18:54:39 +0000 (11:54 -0700)]
Merge "Avoid encoding garbage when ivfenc encounters an unsupported Y4M file."

14 years agoMerge "gen_scalers: fix 64-bit integer promotion bug"
John Koleszar [Wed, 16 Jun 2010 18:54:10 +0000 (11:54 -0700)]
Merge "gen_scalers: fix 64-bit integer promotion bug"

14 years agoAvoid encoding garbage when ivfenc encounters an unsupported Y4M file.
Tom Finegan [Wed, 16 Jun 2010 17:24:55 +0000 (13:24 -0400)]
Avoid encoding garbage when ivfenc encounters an unsupported Y4M file.

This change stops ivfenc from treating unsupported Y4M files as raw
input.

For example, if given an interlaced Y4M file, ivfenc treated the input
as if it were raw data because the unsupported Y4M file case previously
fell through without being handled.

Change-Id: I06caa50f3448e6388741a77346daaebf77c277e1

14 years agogen_scalers: fix 64-bit integer promotion bug
John Koleszar [Wed, 16 Jun 2010 16:27:52 +0000 (12:27 -0400)]
gen_scalers: fix 64-bit integer promotion bug

i needs to be treated as signed to get the proper indexing on 64-bit
platforms. This behavior was accidentally reverted when fixing an
unsigned/signed comparison warning.

Change-Id: Ic306d609bdc8de94c8f8ba29c6e45c736101a82e

14 years agoChange bitreader to use a larger window.
Timothy B. Terriberry [Wed, 5 May 2010 21:58:19 +0000 (17:58 -0400)]
Change bitreader to use a larger window.

Change bitreading functions to use a larger window which is refilled less
 often.

This makes it cheap enough to do bounds checking each time the window is
 refilled, which avoids the need to copy the input into a large circular
 buffer.
This uses less memory and speeds up the total decode time by 1.6% on an ARM11,
 2.8% on a Cortex A8, and 2.2% on x86-32, but less than 1% on x86-64.

Inlining vp8dx_bool_decoder_fill() has a big penalty on x86-32, as does moving
 the refill loop to the front of vp8dx_decode_bool().
However, having the refill loop between computation of the split values and
 the branch in vp8_decode_mb_tokens() is a big win on ARM (presumably due to
 memory latency and code size: refilling after normalization duplicates the
 code in the DECODE_AND_BRANCH_IF_ZERO and DECODE_AND_LOOP_IF_ZERO cases.
Unfortunately, refilling at the end of vp8dx_bool_decoder_fill() and at the
 beginning of each decode step in vp8_decode_mb_tokens() means the latter
 requires an extra refill at the end.
Platform-specific versions could avoid the problem, but would require most of
 detokenize.c to be duplicated.

Change-Id: I16c782a63376f2a15b78f8086d899b987204c1c7

14 years agoMerge "More on "some XMM registers are non-volatile on windows x64 ABI""
Yunqing Wang [Tue, 15 Jun 2010 13:41:54 +0000 (06:41 -0700)]
Merge "More on "some XMM registers are non-volatile on windows x64 ABI""

14 years agoMore on "some XMM registers are non-volatile on windows x64 ABI"
Yunqing Wang [Tue, 15 Jun 2010 13:11:26 +0000 (09:11 -0400)]
More on "some XMM registers are non-volatile on windows x64 ABI"

Add same fix in subpixel_sse2.asm.

Change-Id: Icfda6103cbf74ec43308e96961dd738aa823c14d

14 years agoVisualStudio projects: asm tool updates
James Zern [Fri, 4 Jun 2010 22:05:12 +0000 (18:05 -0400)]
VisualStudio projects: asm tool updates

vs8
 - pull yasm.rules [1] into the source tree to avoid need to install
   file into VC/VCProjectDefaults
 - reference same w/ToolFile & RelativePath
 - update arm branch to match

vs7:
 - quote source file paths passed to yasm

[1]:
http://www.tortall.net/svn/yasm/trunk/yasm/Mkfiles/vc9/yasm.rules@2271

Change-Id: I52b801496340cd7b1d0023d12afbc04624ecefc3

14 years agovp8_cx_iface: set default cpu used to 0
John Koleszar [Mon, 14 Jun 2010 14:22:55 +0000 (10:22 -0400)]
vp8_cx_iface: set default cpu used to 0

Change-Id: I7b35f4717cdd204224112f72471b551617262417

14 years agoFix compiler warnings
Guillermo Ballester Valor [Fri, 11 Jun 2010 18:33:49 +0000 (14:33 -0400)]
Fix compiler warnings

Change-Id: I2a97f08cc3c7808ce5be39e910cc5147ecf03a1d

14 years agosse2 version of vp8_regular_quantize_b
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

14 years agoMerge "Use local pointer to pbi->common."
Paul Wilkins [Mon, 14 Jun 2010 16:55:02 +0000 (09:55 -0700)]
Merge "Use local pointer to pbi->common."

14 years agoMerge "platform autodetect: accept amd64 as a synonym for x86_64"
John Koleszar [Mon, 14 Jun 2010 13:09:47 +0000 (06:09 -0700)]
Merge "platform autodetect: accept amd64 as a synonym for x86_64"

14 years agoRemove useless 500 frame limit
Fabio Pedretti [Mon, 14 Jun 2010 13:05:35 +0000 (09:05 -0400)]
Remove useless 500 frame limit

Change-Id: Ib82de60cf32cf08844c3e2d88d7c587396f3892c

14 years agoMerge "ivfenc: fix two-pass support of raw files"
John Koleszar [Mon, 14 Jun 2010 12:54:47 +0000 (05:54 -0700)]
Merge "ivfenc: fix two-pass support of raw files"

14 years agoUse public domain implementation for MD5 algorithm
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

14 years agoivfenc: fix two-pass support of raw files
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

14 years agoMerge "Make this/next iiratio unsigned."
John Koleszar [Sun, 13 Jun 2010 21:35:21 +0000 (14:35 -0700)]
Merge "Make this/next iiratio unsigned."

14 years agoMerge "Tuning of baseline Rd equation to improve behavior at the"
Paul Wilkins [Sun, 13 Jun 2010 11:01:46 +0000 (04:01 -0700)]
Merge "Tuning of baseline Rd equation to improve behavior at the"

14 years agoMerge "Incorrect comment."
Paul Wilkins [Sun, 13 Jun 2010 11:01:01 +0000 (04:01 -0700)]
Merge "Incorrect comment."

14 years agoMake this/next iiratio unsigned.
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.

14 years agoMerge "require --enable-psnr to build ssim"
John Koleszar [Sat, 12 Jun 2010 14:10:39 +0000 (07:10 -0700)]
Merge "require --enable-psnr to build ssim"

14 years agoivfenc: support reading/writing from a pipe
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

14 years agoMerge "Enable vp8_sad16x16x4d_sse3 in non-RTCD case"
John Koleszar [Fri, 11 Jun 2010 18:36:38 +0000 (11:36 -0700)]
Merge "Enable vp8_sad16x16x4d_sse3 in non-RTCD case"

14 years agoMerge "Change preprocessor check to _WIN32"
Yaowu Xu [Fri, 11 Jun 2010 18:14:25 +0000 (11:14 -0700)]
Merge "Change preprocessor check to _WIN32"

14 years agoEnable vp8_sad16x16x4d_sse3 in non-RTCD case
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

14 years agorequire --enable-psnr to build ssim
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

14 years agoplatform autodetect: accept amd64 as a synonym for x86_64
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

14 years agosome XMM registers are non-volatile on windows x64 ABI
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

14 years agoIncorrect comment.
Paul Wilkins [Fri, 11 Jun 2010 15:12:45 +0000 (16:12 +0100)]
Incorrect comment.

(Thanks to Ronald S. Bultje)

14 years agoUse local pointer to pbi->common.
Paul Wilkins [Fri, 11 Jun 2010 14:17:57 +0000 (15:17 +0100)]
Use local pointer to pbi->common.

14 years agoTuning of baseline Rd equation to improve behavior at the
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.

14 years agoChange preprocessor check to _WIN32
Frank Galligan [Thu, 10 Jun 2010 20:59:21 +0000 (16:59 -0400)]
Change preprocessor check to _WIN32

Change-Id: I841dc0b8ebb150ac998f4076c148d7bb187e4301

14 years agoMerge "Improve vp8_sixtap_predict functions"
Yunqing Wang [Fri, 11 Jun 2010 13:48:52 +0000 (06:48 -0700)]
Merge "Improve vp8_sixtap_predict functions"

14 years agoreplace while(0) construct with if/else
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