Johann [Mon, 24 Oct 2011 23:56:55 +0000 (16:56 -0700)]
remove uninitialized variable warning
Restructure if statement to clarify the error condition. Trigger the
error before clobbering pc-> variables.
Change-Id: Id01cab798a341ce9899078fdcec265a0e942a0b7
Scott LaVarnway [Mon, 24 Oct 2011 17:52:15 +0000 (13:52 -0400)]
Moved the split motion vector decode
into a function.
Change-Id: Ia023a0587100a52cb084f5d9d5512efa6198dad3
Scott LaVarnway [Mon, 24 Oct 2011 17:27:53 +0000 (10:27 -0700)]
Merge "Removed redundant mv clamps for nearmv and nearestmv"
Scott LaVarnway [Mon, 24 Oct 2011 15:37:52 +0000 (11:37 -0400)]
Removed redundant mv clamps for nearmv and nearestmv
Did some cleanup as well.
Patchset 2: Fixed bug. Will revisit the segmentation logic.
Change-Id: Idf9fbcff9aaf467bdace9fbd58ef2cea6c602049
Scott LaVarnway [Fri, 21 Oct 2011 13:30:57 +0000 (06:30 -0700)]
Merge "Remove unused DETOK structure"
Tero Rintaluoma [Thu, 20 Oct 2011 10:22:18 +0000 (13:22 +0300)]
Remove unused DETOK structure
DETOK structure is not used anymore.
Change-Id: Id22e1af78fb85d4bb151237a60290d9364faf217
John Koleszar [Fri, 21 Oct 2011 00:44:26 +0000 (17:44 -0700)]
Merge "Add license text to configure generated files."
John Koleszar [Fri, 21 Oct 2011 00:36:40 +0000 (17:36 -0700)]
Merge "Fix: check cx_data buffer prior to write"
Tom Finegan [Thu, 20 Oct 2011 02:47:02 +0000 (22:47 -0400)]
Add license text to configure generated files.
Applies to generated files with c, h, and mk extensions.
Change-Id: Id82c46673c7aad43e95a9de5058ddcfc6fd72f14
James Berry [Wed, 12 Oct 2011 15:18:50 +0000 (11:18 -0400)]
Fix: check cx_data buffer prior to write
check to make sure that cx_data buffer has enough room before
writting to it, prior behavior did not which could result in a crash.
Change-Id: I3fab6f2bc4a96d7c675ea81acd39ece121738b28
Johann [Tue, 18 Oct 2011 01:21:10 +0000 (18:21 -0700)]
Don't copy borders for loop_filter_pick
During the _pick only the Y plane is examined. In addition, data beyond
the borders of the frame is not read.
Change-Id: Ic549adfca70fc6e0b55f8aab0efe81f0afac89f9
Johann [Wed, 19 Oct 2011 21:37:48 +0000 (14:37 -0700)]
Merge "Fix: NEON copy/extend frame for small sizes"
Johann [Wed, 19 Oct 2011 21:36:29 +0000 (14:36 -0700)]
Merge "enc: save entropy probs only when needed for refresh"
Scott LaVarnway [Wed, 19 Oct 2011 17:24:48 +0000 (10:24 -0700)]
Merge "Remove usage of predict buffer for decode"
James Zern [Wed, 19 Oct 2011 00:34:10 +0000 (17:34 -0700)]
vpxenc: fix rollover in status output
sizeof(unsigned long)=4 in 32-bit builds
Change-Id: I81c9d698c80ffaa332214e5b43e98b4e30cf9e88
Scott LaVarnway [Tue, 18 Oct 2011 16:06:50 +0000 (12:06 -0400)]
Remove usage of predict buffer for decode
Instead of using the predict buffer, the decoder now writes
the predictor into the recon buffer. For blocks with eob=0,
unnecessary idcts can be eliminated. This gave a performance
boost of ~1.8% for the HD clips used.
Tero: Added needed changes to ARM side and scheduled some
assembly code to prevent interlocks.
Patch Set 6: Merged (I1bcdca7a95aacc3a181b9faa6b10e3a71ee24df3)
into this commit because of similarities in the idct
functions.
Patch Set 7: EC bug fix.
Change-Id: Ie31d90b5d3522e1108163f2ac491e455e3f955e6
Johann [Mon, 17 Oct 2011 16:21:31 +0000 (09:21 -0700)]
Merge "Fix: vp8cx_pack_tokens_into_partitions_armv5 crash"
Attila Nagy [Fri, 14 Oct 2011 11:17:24 +0000 (14:17 +0300)]
Fix: NEON copy/extend frame for small sizes
NEON version of copyframeyonly, extendframeborders, copy_frame_func were
not working for plane stride < 128 and/or y_width < 128.
Change-Id: Id6c2e6c795274da0c90134b15c0d5f62d1b17a6c
Johann [Fri, 14 Oct 2011 19:06:24 +0000 (12:06 -0700)]
add 32bit darwin10 (10.6) target
Change-Id: Id1c189350d54919be37f864dae91dee37584945a
Johann [Fri, 14 Oct 2011 19:03:32 +0000 (12:03 -0700)]
allow building for older platforms
Change-Id: Ibbd05e981debee12c16ebcd274150cd75a94a69d
John Koleszar [Fri, 14 Oct 2011 14:56:12 +0000 (07:56 -0700)]
Merge "vpxdec updated to use !feof() instead of *buf_sz in readframe()"
Attila Nagy [Fri, 14 Oct 2011 06:19:03 +0000 (09:19 +0300)]
Fix: vp8cx_pack_tokens_into_partitions_armv5 crash
It was crashing when number of partitions was bigger than the number
of MB rows (ex. 128x96 with 8 partitions).
Start point was not checked against mb_rows, plus extra
"empty" partitions were not written out.
Change-Id: I9c2f013b9ec022354b658fab4ef799ff8b1de93d
John Koleszar [Tue, 11 Oct 2011 19:57:17 +0000 (12:57 -0700)]
Bump ABI version number for temporal scalability
Commit 217591f modified the encoder ABI without incrementing the version number.
Change-Id: I74de01597dadcdcd96f6b817e4ec69d9ab535e4c
Adrian Grange [Tue, 11 Oct 2011 19:54:52 +0000 (12:54 -0700)]
Merge "Added rate-targeted temporal scalability"
Adrian Grange [Thu, 6 Oct 2011 22:49:11 +0000 (15:49 -0700)]
Added rate-targeted temporal scalability
Added the ability to create rate-targeted, temporally
scalable, VP8 compatible bitstreams.
The application vp8_scalable_patterns.c demonstrates how
to use this capability. Users can create output bitstreams
containing upto 5 temporally separable streams encoded
as a single VP8 bitstream.
(previously abandoned as:
I92d1483e887adb274d07ce9e567e4d0314881b0a)
Change-Id: I156250a3fe930be57c069d508c41b6a7a4ea8d6a
James Berry [Fri, 7 Oct 2011 19:42:23 +0000 (15:42 -0400)]
bug fix - starting/optimal/max and buffer_level changed from int to int64_t
buffer_level in VP8_COMP and starting_buffer_level, optimal_buffer_level
and maximum_buffer_size in VP8_CONFIG changed from int to int64_t
to avoid potential crash issues for larger target bit rates.
Change-Id: I0d5ab6c8a44c2fef51f30cd8df4bb4b739c5df26
Attila Nagy [Mon, 10 Oct 2011 08:14:07 +0000 (11:14 +0300)]
enc: save entropy probs only when needed for refresh
Previous entropy probs need to be saved (and restored) only when
current updates are not propagated.
Change-Id: Ie6ee0543066e30874e56258be0a6b7d2dd2fdb2b
Scott LaVarnway [Tue, 4 Oct 2011 16:57:42 +0000 (09:57 -0700)]
Merge "Improved tokenize"
John Koleszar [Tue, 4 Oct 2011 14:40:49 +0000 (07:40 -0700)]
Merge "Fix uninitialized new_mv_count in first pass file"
Yunqing Wang [Tue, 4 Oct 2011 14:04:30 +0000 (07:04 -0700)]
Merge "Multithreaded encoder, late sync loopfilter"
John Koleszar [Tue, 4 Oct 2011 13:50:40 +0000 (09:50 -0400)]
Fix uninitialized new_mv_count in first pass file
Uninitialized data could be written to the first pass file when no
motion vectors are present in the frame.
Also fix a number of compiler warnings.
Change-Id: Icc9f53b6d33da9de4563d86d9fd591910473ea90
John Koleszar [Mon, 3 Oct 2011 15:31:13 +0000 (08:31 -0700)]
Merge "makefile: fix target 'all'"
Johann [Fri, 30 Sep 2011 23:17:56 +0000 (16:17 -0700)]
Merge "Reduce computational complexity of generic C loop filter."
Johann [Fri, 30 Sep 2011 22:47:56 +0000 (15:47 -0700)]
Merge "combine loopfilter data access"
Scott LaVarnway [Fri, 30 Sep 2011 16:49:46 +0000 (12:49 -0400)]
Improved tokenize
For a realtime HD encodings, up to 1.6% gains seen.
Change-Id: If45028e23db95124da63f9d38ffe06e05596cc6e
Johann [Tue, 27 Sep 2011 00:17:20 +0000 (17:17 -0700)]
combine loopfilter data access
The data processed by the loopfilter overlaps. At the block level, this
results in some redundant transforms. Grouping the filtering allows for
a single 16x16 transpose (and inversion) instead of three 16x8 transposes
(and three more inversions).
This implementation is x86_64 only. We retain the previous
implementation for x86.
Improvements are obviously material dependant, but it seems to be ~%1 in
tests here.
Change-Id: I467b7ec3655be98fb5f1a94b5d145e5e5a660007
Alpha Lam [Thu, 1 Sep 2011 16:11:23 +0000 (17:11 +0100)]
Call vp8_find_near_mvs lazily
vp8_find_near_mvs() is being called on all possible reference frames
but the data computed may be used if the loop exits early, which can
be due to x->skip beign set to 1.
Optimize this by call vp8_find_near_mvs() laziy only if it is going
to be used and not computed yet.
Change-Id: Iccdbd4c962a670c9f2c99b8aca8096042ca5dc98
Paul Wilkins [Fri, 30 Sep 2011 09:57:54 +0000 (02:57 -0700)]
Merge "CQ and two pass rate control."
Paul Wilkins [Thu, 15 Sep 2011 13:36:24 +0000 (14:36 +0100)]
CQ and two pass rate control.
Changes to the selection of Q limits for two pass
and two pass CQ mode.
Allowance made for Mode and motion vector costs.
Some refactoring of common code.
For Derf and YT sets CQ mode average improvement
circa 1% (SSIM and Global PSNR).
Some increased tendency to undershoot even when
user CQ not reached.
Patch2: Removed some test code accidentally merged.
Change-Id: Icf74d13af77437c08602571dc7a97e747cce5066
Aaron Watry [Thu, 29 Sep 2011 22:25:48 +0000 (17:25 -0500)]
Reduce computational complexity of generic C loop filter.
Change-Id: I1e7f9ed3cd907844a495b9e0073bc140b87e5c06
John Koleszar [Thu, 29 Sep 2011 13:14:37 +0000 (09:14 -0400)]
makefile: fix target 'all'
'all' is the conventional target for building everything in the
makefile, but the child make was expecting all-$(target), for debugging
reasons that I don't recall exactly. Restore the expected behavior.
Change-Id: Ifbb03610b55be679ce7c5e210b7a69a156bb76b9
Attila Nagy [Fri, 16 Sep 2011 10:54:06 +0000 (13:54 +0300)]
Multithreaded encoder, late sync loopfilter
Sync with loopfilter thread just at the beginning of next frame encoding.
This returns control to application faster and allows a better multicore scaling.
When PSNR packets are generated the final filtered frame is needed imediatly
so we cannot delay the sync.
Change-Id: I288d97b5e331d41d6f5bb49d97986fa12ac6f066
James Berry [Thu, 22 Sep 2011 19:03:28 +0000 (15:03 -0400)]
vpxdec updated to use !feof() instead of *buf_sz in readframe()
For partial droped frames using *buf_sz could incorrectly terminate
a decode.
Change-Id: Id4a1166fa9ae6c0aa7e9f214bfa4c0be0ea82c1c
John Koleszar [Thu, 22 Sep 2011 18:54:15 +0000 (11:54 -0700)]
Merge "clamp_mvs() using the wrong motion vector information"
John Koleszar [Thu, 22 Sep 2011 18:18:00 +0000 (11:18 -0700)]
Merge changes Ie650e9b8,I2427e494
* changes:
vpxenc: get version string programatically
Install missing default_coef_probs.h
John Koleszar [Thu, 22 Sep 2011 17:24:33 +0000 (13:24 -0400)]
vpxenc: get version string programatically
To avoid a dependency on vpx_version.h, call the vpx_codec_version_str()
function and build up the string manually.
Change-Id: Ie650e9b8f2aaaffaa31da5e9ef3b566b972321b4
Johann [Thu, 22 Sep 2011 16:30:18 +0000 (09:30 -0700)]
Merge "Replace vpx_ports/config.h with vpx_config.h"
John Koleszar [Thu, 22 Sep 2011 15:08:21 +0000 (11:08 -0400)]
Install missing default_coef_probs.h
Make sure that this header is listed as one of the sources, so that it
will be installed if necessary.
Change-Id: I2427e494488126b179151dc21043c1e2c8ba5991
Attila Nagy [Thu, 15 Sep 2011 12:34:12 +0000 (15:34 +0300)]
Replace vpx_ports/config.h with vpx_config.h
Just a clean-up.
Change-Id: Iea5b6dc925dcfa7db548bc1ab1a13d26ed5a2c9a
Fritz Koenig [Tue, 20 Sep 2011 22:36:44 +0000 (15:36 -0700)]
Reduce grep match when generating offset files.
Search for the word EQU so that extraneous
symbols are not matched.
Change-Id: Ice6c9ca886211e2ca8a2f5174bdd4103db5c4989
Fritz Koenig [Tue, 20 Sep 2011 17:51:06 +0000 (10:51 -0700)]
Move neon only arm functions under arm/neon.
These files don't contain generic arm code, so should
only be compiled by neon.
Change-Id: Ie712823aa04d4235e7cfe7a3b725e73ee4c3e564
Johann [Tue, 20 Sep 2011 16:51:05 +0000 (09:51 -0700)]
Merge "NEON FDCT updated to match current C code"
Johann [Tue, 20 Sep 2011 16:50:42 +0000 (09:50 -0700)]
Merge "NEON walsh transform updated to match C"
Johann [Tue, 20 Sep 2011 16:50:36 +0000 (09:50 -0700)]
Merge "Updated ARMv6 forward transforms to match C"
Johann [Tue, 20 Sep 2011 16:50:19 +0000 (09:50 -0700)]
Merge "Fixed armv5te multiplications"
Tero Rintaluoma [Mon, 19 Sep 2011 07:10:49 +0000 (10:10 +0300)]
NEON FDCT updated to match current C code
- Removed fast_fdct4x4_neon and fast_fdct8x4_neon
- Uses now short_fdct4x4 and short_fdct8x4
- Gives ~1-2% speed-up on Cortex-A8/A9
Change-Id: Ib62f2cb2080ae719f8fa1d518a3a5e71278a41ec
Tero Rintaluoma [Mon, 19 Sep 2011 07:59:52 +0000 (10:59 +0300)]
Fixed armv5te multiplications
Rd and Rm registers should be different in 'mul'. This register
combination results in unpredictable behaviour. GCC will give
a warning and RVCT an error in this case.
Restriction applies only to armv5 targets and not for armv6 and above.
Change-Id: I378d17c51e1f16a6820814fbed43e115aaabb03e
Stefan Holmer [Tue, 6 Sep 2011 12:34:36 +0000 (14:34 +0200)]
Fix necessary for input partitions iface to match the RTP profile
These changes fixes a glitch between the RTP profile and the input
partitions interface. Since there's no way for the user to know the
actual number of partitions, the decoder have to read the
multi_token_paritition bits also when input partitions mode is
enabled.
Included are also a couple of fixes for issues with independent
partitions and uninitialized memory reads.
Change-Id: I6f93b15287d291169ed681898ed3fbcc5dc81837
Tero Rintaluoma [Mon, 19 Sep 2011 07:24:02 +0000 (10:24 +0300)]
Updated ARMv6 forward transforms to match C
- Updated walsh transform to match C
(based on Change Id24f3392)
- Changed fast_fdct4x4 and 8x4 to short_fdct4x4 and 8x4
correspondingly
Change-Id: I704e862f40e315b0a79997633c7bd9c347166a8e
Tero Rintaluoma [Mon, 19 Sep 2011 07:15:33 +0000 (10:15 +0300)]
NEON walsh transform updated to match C
Modified original patch If2f07220885c4c3a0cae0dace34ea0e36124f001
according to comments. Scheduled code a little bit to prevent some
interlocks.
Change-Id: I338f02b881098782f82af63d97f042b85e63e902
John Koleszar [Fri, 16 Sep 2011 15:09:44 +0000 (08:09 -0700)]
Merge "Fixes the boundary checks for extrapolated and interpolated MVs."
Scott LaVarnway [Fri, 16 Sep 2011 15:03:53 +0000 (11:03 -0400)]
clamp_mvs() using the wrong motion vector information
In the "Removed bmi copy to/from BLOCKD" commit, the copy
to the bmi in BLOCKD was eliminated. The clamp_mvs() used
the bmi in BLOCKD, which now contains incorrect values. This
patch fixes this problem.
Change-Id: I8eca1eaf4015052b0b63e90876f7ad321aba7cff
Stefan Holmer [Tue, 23 Aug 2011 09:01:14 +0000 (11:01 +0200)]
Fixes the boundary checks for extrapolated and interpolated MVs.
Change-Id: I5b47d39d1604f2650d2f2d1ca2a3f40843c8e1ea
John Koleszar [Wed, 14 Sep 2011 15:39:04 +0000 (08:39 -0700)]
Merge "Fix odd-sized image support in decoder examples"
John Koleszar [Wed, 14 Sep 2011 15:25:24 +0000 (11:25 -0400)]
Fix odd-sized image support in decoder examples
Odd sized images need their chroma plane sizes rounded up.
Change-Id: I3cd6fa60551f05697b67ece5b6928bef2a41bad8
Scott LaVarnway [Tue, 13 Sep 2011 15:46:33 +0000 (11:46 -0400)]
Fixed encoder crash
caused by the "Removed bmi copy to/from BLOCKD" commit.
Change-Id: I9fae71bdc34c8ecc07bb81cd3ccf498b91ce3ec7
Scott LaVarnway [Wed, 31 Aug 2011 14:18:52 +0000 (07:18 -0700)]
Merge "Skip computation of distortion in vp8_pick_inter_mode if active_map is used"
Scott LaVarnway [Wed, 31 Aug 2011 13:57:20 +0000 (06:57 -0700)]
Merge "Removed bmi copy to/from BLOCKD"
Alpha Lam [Wed, 31 Aug 2011 10:43:00 +0000 (11:43 +0100)]
Skip computation of distortion in vp8_pick_inter_mode if active_map is used
If a block is marked to be inactive then set distortion to 0.
Change-Id: Ib415f19642a2ff7b5cf5cfaedd60ebbd79732272
John Koleszar [Tue, 30 Aug 2011 19:49:24 +0000 (12:49 -0700)]
Merge "Recalculate zbin_extra only if regular quantizer is being used"
Alpha Lam [Tue, 30 Aug 2011 18:23:34 +0000 (19:23 +0100)]
Recalculate zbin_extra only if regular quantizer is being used
vp8_update_zbin_extra() is called all the time even though the fast
quantizer doesn't use it. Skip this call if fast quantizer is used.
Change-Id: Ia711c38431930cc2486cf59b8466060ef0e9d9db
Yunqing Wang [Thu, 25 Aug 2011 20:54:45 +0000 (16:54 -0400)]
Minor modification on key frame decision
This change makes sure that no key frame recoding in real-time mode
even if CONFIG_REALTIME_ONLY is not configured.
Change-Id: Ifc34141f3217a6bb63cc087d78b111fadb35eec2
Fritz Koenig [Wed, 24 Aug 2011 22:47:09 +0000 (15:47 -0700)]
Quiet warning by removing unused variable.
fwd_boost_score was not being computed or
referenced, so remove declaration.
Change-Id: Iece36cde1ec113e3c6afaff1407d24cdf12bd0a8
Scott LaVarnway [Wed, 24 Aug 2011 18:42:26 +0000 (14:42 -0400)]
Removed bmi copy to/from BLOCKD
for SPLITMV and B_PRED modes. Modified code to use the bmi
found in mode_info_context instead of BLOCKD. On the decode
side, the uvmvs are calculated only when required, instead of
every macroblock. This is WIP. (bmi should eventually be
removed from BLOCKD)
Small performance gains noticed for RT encodes and decodes.(VGA)
Change-Id: I2ed7f0fd5ca733655df684aa82da575c77a973e7
Fritz Koenig [Wed, 24 Aug 2011 17:19:46 +0000 (10:19 -0700)]
Fix naming of sse2 idct functions.
Prepend idct function names with vp8_
so that under profiling they show up
associated with libvpx.
Change-Id: I4fe357b50236cb7730a4cc00164c0a3487a1d8b4
Scott LaVarnway [Wed, 24 Aug 2011 14:52:10 +0000 (07:52 -0700)]
Merge "Faster vp8_default_coef_probs"
Johann [Wed, 24 Aug 2011 00:42:45 +0000 (20:42 -0400)]
Fix data accesses for simple loopfilters
The data that the simple horizontal loopfilter reads is aligned, treat
it accordingly.
For the vertical, we only use the bottom 4 bytes, so don't read in 16
(and incur the penalty for unaligned access).
This shows a small improvement on older processors which have a
significant penalty for unaligned reads.
postproc_mmx.c is unused
Change-Id: I87b29bbc0c3b19ee1ca1de3c4f47332a53087b3d
Fritz Koenig [Mon, 22 Aug 2011 22:29:41 +0000 (15:29 -0700)]
Use local labels for jumps/loops in x86 assembly.
Prepend . to local labels in assembly code. This
allows non unique labels within a file. Also
makes profiling information more informative
by keeping the function name with the loop name.
Change-Id: I7a983cb3a5ba2413d5dafd0a37936b268fb9e37f
Fritz Koenig [Mon, 22 Aug 2011 19:36:28 +0000 (12:36 -0700)]
Reclassify optimized ssim calculations as SSE2.
Calculations were incorrectly classified as either
SSE3 or SSSE3. Only using SSE2 instructions.
Cleanup function names and make non-RTCD code work
as well.
Change-Id: I48ad0218af0cc51c5078070a08511dee43ecfe09
Fritz Koenig [Mon, 22 Aug 2011 19:32:12 +0000 (12:32 -0700)]
Merge "Revert "Reclasify optimized ssim calculations as SSE2.""
Fritz Koenig [Mon, 22 Aug 2011 18:31:12 +0000 (11:31 -0700)]
Revert "Reclasify optimized ssim calculations as SSE2."
This reverts commit
01376858cd184d820ff4c2d8390361a8679c0e87
Fritz Koenig [Mon, 22 Aug 2011 16:20:33 +0000 (09:20 -0700)]
Merge "Reclasify optimized ssim calculations as SSE2."
John Koleszar [Fri, 19 Aug 2011 16:04:04 +0000 (12:04 -0400)]
tools: author_first_release.sh
First version of a simple tool to get a list of the version a user first
contributed to.
Change-Id: I8f1b1fef5343de269c4b6209632c9cedc2cf1a37
Fritz Koenig [Fri, 19 Aug 2011 15:51:27 +0000 (08:51 -0700)]
Reclasify optimized ssim calculations as SSE2.
Calculations were incorrectly classified as either
SSE3 or SSSE3. Only using SSE2 instructions.
Cleanup function names and make non-RTCD code work
as well.
Change-Id: I29f5c2ead342b2086a468029c15e2c1d948b5d97
John Koleszar [Fri, 19 Aug 2011 14:31:00 +0000 (07:31 -0700)]
Merge "Copy less when active map is in use"
Alpha Lam [Tue, 9 Aug 2011 19:59:45 +0000 (20:59 +0100)]
Copy less when active map is in use
When active map is specified and the current frame is not a key frame,
golden frame nor a altref frame then copy only those active regions.
This significantly reduces encoding time by as much as 19% on the test
system where realtime encoding is used. This is particularly useful
when the frame size is large (e.g. 2560x1600) and there's only a few
action macroblocks.
Change-Id: If394a813ec2df5a0201745d1348dbde4278f7ad4
Paul Wilkins [Wed, 17 Aug 2011 13:14:23 +0000 (14:14 +0100)]
Small boost to every other frame.
Instead of a single mid GF boost apply a few extra bits to
every other frame. This gives a very small average metrics
improvement on both derf and YT sets.
Also use min GF interval as min KF interval.
Change-Id: Iee238b8cae0ffaed850a5a944ac825cee18da485
Scott LaVarnway [Tue, 16 Aug 2011 20:21:21 +0000 (16:21 -0400)]
Faster vp8_default_coef_probs
Copies from a generated table instead of building the
default coeff probabilities during runtime.
Change-Id: I4d9551ea3a2d7d4a4f7ce9eda006495221a8de50
John Koleszar [Mon, 15 Aug 2011 21:08:40 +0000 (17:08 -0400)]
Merge v0.9.7-p1 release int 'origin/master'
Change-Id: I93388d2f8846615ad1e26b975308c5e96b9b1918
John Koleszar [Mon, 15 Aug 2011 21:02:45 +0000 (17:02 -0400)]
Update CHANGELOG for v0.9.7-p1
Change-Id: I5490a9cad2d6752832b6bf4ec1835c06a45eeb9b
Stefan Holmer [Mon, 15 Aug 2011 07:28:41 +0000 (09:28 +0200)]
Don't set the bmi mode when doing error concealment
Since the block will be interpreted as an inter block, the mode will
be interpreted as a motion vector, resulting in bad concealment.
Change-Id: Ifcc685ae1cc883492bce6dbd61e418d91a89b053
Stefan Holmer [Mon, 15 Aug 2011 07:28:41 +0000 (09:28 +0200)]
Don't set the bmi mode when doing error concealment
Since the block will be interpreted as an inter block, the mode will
be interpreted as a motion vector, resulting in bad concealment.
Change-Id: Ifcc685ae1cc883492bce6dbd61e418d91a89b053
John Koleszar [Fri, 12 Aug 2011 18:59:10 +0000 (14:59 -0400)]
Generate libvpx_srcs.txt from current configuration
To get a list of files that the libvpx library depends on in the current
configuration, run:
$ make target=libs libvpx_srcs.txt
Change-Id: I68a69648ecf212f0fe29c325297728ac2a9393d9
John Koleszar [Fri, 12 Aug 2011 18:51:36 +0000 (14:51 -0400)]
Revert "Improved 1-pass CBR rate control"
This reverts commit
b5ea2fbc2c1554769848774c836aad262af95072. Further
testing showed noticable keyframe popping in some cases, reverting this
for now to give time for a proper fix.
Conflicts:
vp8/encoder/onyx_if.c
vp8/encoder/ratectrl.c
Change-Id: I159f53d1bf0e24c035754ab3ded8ccfd58fd04af
John Koleszar [Fri, 12 Aug 2011 15:30:54 +0000 (11:30 -0400)]
Propagate macroblock MV to subblocks for error concealment
EC expects the subblock MVs to be populated, but
f1d6cc79e43f0066632f19c1854ca365086b712b removed this code. This
commit restores it, protected by CONFIG_ERROR_CONCEALMENT. May move this
to the EC code more directly in the future.
Change-Id: I44f8f985720cb9a1bf222e59143f9e69abf56ad2
Stefan Holmer [Mon, 8 Aug 2011 08:56:20 +0000 (10:56 +0200)]
Disable error concealment until first key frame is decoded
When error concealment is enabled the first key frame must
be successfully received before error concealment is activated.
Error concealment will be activated when the delta following
delta frame is received.
Also fixed a couple of bugs related to error tracking in
multi-threading. And avoiding decoding corrupt residual
when we have multiple non-resilient partitions.
Change-Id: I45c4bb296e2f05f57624aef500a874faf431a60d
John Koleszar [Fri, 5 Aug 2011 16:27:25 +0000 (12:27 -0400)]
Fix potential OOB read with Error Concealment
This patch fixes an OOB read when error concealment is enabled and the
partition sizes are corrupt. The partition size read from the bitstream
was not being validated in EC mode.
Change-Id: Ia81dfd4bce1ab29ee78e42320abe52cee8318974
John Koleszar [Fri, 12 Aug 2011 18:45:26 +0000 (11:45 -0700)]
Merge "Disable error concealment until first key frame is decoded"
John Koleszar [Fri, 12 Aug 2011 15:30:54 +0000 (11:30 -0400)]
Propagate macroblock MV to subblocks for error concealment
EC expects the subblock MVs to be populated, but
f1d6cc79e43f0066632f19c1854ca365086b712b removed this code. This
commit restores it, protected by CONFIG_ERROR_CONCEALMENT. May move this
to the EC code more directly in the future.
Change-Id: I44f8f985720cb9a1bf222e59143f9e69abf56ad2
Stefan Holmer [Mon, 8 Aug 2011 08:56:20 +0000 (10:56 +0200)]
Disable error concealment until first key frame is decoded
When error concealment is enabled the first key frame must
be successfully received before error concealment is activated.
Error concealment will be activated when the delta following
delta frame is received.
Also fixed a couple of bugs related to error tracking in
multi-threading. And avoiding decoding corrupt residual
when we have multiple non-resilient partitions.
Change-Id: I45c4bb296e2f05f57624aef500a874faf431a60d