Yaowu Xu [Fri, 11 Nov 2011 15:38:42 +0000 (15:38 +0000)]
Merge "fixed the decoder when using 8x8 transform" into experimental
Yaowu Xu [Thu, 10 Nov 2011 20:54:22 +0000 (12:54 -0800)]
Make 8x8 and extend_qrange to work together
This commit added scaling factors to 8x8 transform, quant, dequant and
inverse transform pipeline to make 8x8 transform to work when configed
with enable-extend_qrange. This commit also disabled the trellis-quant
when extend_qrange is configured.
Change-Id: Icfb3192e4746f70a4bb35ad18b7b47705b657e52
Yaowu Xu [Fri, 11 Nov 2011 01:15:06 +0000 (17:15 -0800)]
fixed the decoder when using 8x8 transform
updated the decode_macroblock logic to reflect that 8x8 transform is
not used for "SPLITMV". Also fixed an issue where 2nd order haar block
has wrong dequant/idct process.
Change-Id: I1e373f6535c009dfec503b6362c8a5cfc196e1da
Yaowu Xu [Thu, 10 Nov 2011 16:34:36 +0000 (16:34 +0000)]
Merge "scaled the threshold for 2nd order coefficient reset" into experimental
Yaowu Xu [Thu, 10 Nov 2011 15:40:44 +0000 (07:40 -0800)]
scaled the threshold for 2nd order coefficient reset
extend_qrange introduces a different scaling factor, this commit takes
the scaling difference into account for reset 2nd order coefficients.
Change-Id: Ie58bca9f52698fa759e3f88da2aa4d82630fa91a
Paul Wilkins [Thu, 10 Nov 2011 09:37:26 +0000 (09:37 +0000)]
Merge "T8x8 experiment merge." into experimental
Yaowu Xu [Thu, 10 Nov 2011 00:43:12 +0000 (00:43 +0000)]
Merge "fixed an encoder bug" into experimental
Yaowu Xu [Thu, 10 Nov 2011 00:03:23 +0000 (16:03 -0800)]
fixed an encoder bug
the bug caused the encoder to produce invalid bitstream when configured
with enable_extend_qrange.
Change-Id: I1e81c48b13359d0043cbbd480e679380a2da117c
Paul Wilkins [Wed, 9 Nov 2011 14:05:28 +0000 (14:05 +0000)]
T8x8 experiment merge.
For ease of testing and merging experiments I have
removed in line code in encode_frame() that assigns
MBs to be t8x8 or t4x4 coded segments and have
moved the decision point and segment setup to
the init_seg_features0 test function.
Keeping everything in one place helps make sure
for now that experiments using segmentation are
not fighting each other.
Also made sure mode selection code can't choose 4x4
modes if t8x8 is selected.
Patch2: In init_seg_features() add checks
for SEG_LVL_TRANSFORM active.
Change-Id: Ia1767edd99b78510011d4251539f9bc325842e3a
Paul Wilkins [Tue, 8 Nov 2011 15:40:32 +0000 (15:40 +0000)]
Merging and testing of SEGMENTATION experiment.
Removed code in #if CONFIG_SEGMENTATION that
enables segmentation and creates a test segmentation
map, to avoid conflicts with the other segmentation test
code,
Change-Id: I7a21a44ed188b814cd80b30dd628c62474eba730
Paul Wilkins [Thu, 3 Nov 2011 17:45:27 +0000 (17:45 +0000)]
Segmentation feature logic fix.
Bug fix to logic in vp8_pick_inter_mode() and
vp8_rd_pick_inter_mode().
The block on the use of segment features
for the cm->refresh_alt_ref_frame case
was just for testing and is not correct.
The special case code for alt ref can
be re-enabled as an else clause.
Change-Id: Ic9b57cdb5f04ea7737032b8fb953d84d7717b3ce
Yaowu Xu [Wed, 9 Nov 2011 04:05:17 +0000 (20:05 -0800)]
make debug match release build on win32 with 8x8 transform enabled
The 8x8 forward transform makes use of floating operations, therefore
requires emms call to reset mmx registers to correct state. Without
the resets, the 8x8 forward transform results are indefinite on win32
platform.
Change-Id: Ib5b71c3213e10b8a04fe776adf885f3714e7deb1
Yaowu Xu [Sat, 5 Nov 2011 02:08:51 +0000 (19:08 -0700)]
Attempt to fix an issue related to 8x8 transform and segfeature
logically this commit should NOT change anything, but seems to help
revert the 3DB loss on bowing in the following commit:
https://on2-git.corp.google.com/g/#change,6193
This is still debugging in progress. Need further investigation to
understand the root cause of the issue.
Change-Id: I0b49d1ef3a311dfff58c6acd3eaebdb3bda6257c
Paul Wilkins [Fri, 4 Nov 2011 18:29:51 +0000 (18:29 +0000)]
Segment signaling of TX size
Initial attempt at using new segment feature signaling
to indicate 4x4 or 8x8 transform.
needs --enable-experimental --enable-t8x8
Note this is work in progress.
Change-Id: Ib160d46a5d810307bfcbc79853ce1a65b5b870b7
Yaowu Xu [Fri, 4 Nov 2011 16:25:15 +0000 (16:25 +0000)]
Merge "Added context reset when 2nd order coefficients are cleared" into experimental
Paul Wilkins [Fri, 4 Nov 2011 10:59:54 +0000 (10:59 +0000)]
Segment Features with 8x8DCT.
Temporary check in to turn off other segment features
tests when #if CONFIG_T8X8 is set as the assignment of
MBs to differnt segments in each case will conflict.
The 8x8 code will be modified to use the new segment
feature method properly in a later check in.
Increase bits allowed for EOB end stop marker to 6 ready
for 8x8.
Change-Id: I4835bc8d3bf98e1775c3d247d778639c90b01f7f
Paul Wilkins [Thu, 3 Nov 2011 16:58:26 +0000 (16:58 +0000)]
Segment Feature Data Access
No change to functionality or output.
Updates to the segment feature data structure now all done
through functions such as set_segdata() and get_segdata()
in seg_common.c.
The reason for this is to make changing the structures (if needed)
and debug easier.
In addition it provides a single location for subsequent addition
of range and validity checks. For example valid combination of
mode and reference frame.
Change-Id: I2e866505562db4e4cb6f17a472b25b4465f01add
Yaowu Xu [Thu, 4 Aug 2011 23:30:27 +0000 (16:30 -0700)]
make uv intra mode coding adaptive to Y mode
This commit tries to do UV intra mode coding adaptive to Y intra mode.
Entropy context is defined as conditional PDF of uv intra mode given
the Y mode. All constants are normalized with 256 to be fit in 8 bits.
This provides further coding efficiency beyond the quantizer adaptive
y intra mode coding. Consistent gains were observed on all clips and
all bit rates for HD all key encoding tests.
To test, configure with
--enable-experimental --enable-uvintra
Change-Id: I2d78d73f143127f063e19bd0bac3b68c418d756a
Yaowu Xu [Thu, 3 Nov 2011 23:05:29 +0000 (16:05 -0700)]
Added context reset when 2nd order coefficients are cleared
As discovered in path 10 of Change Ia12acd2f, reset 2nd order coeffs
without reset of above and left coding context may have introduced
problem that causes encoder/decoder mismatching. This commit added
update to coding context when the 2nd coefficients are cleared.
In addition, this commit also introduced early breakout in the checks
to speed up when coefficients are too significant to be cleared.
Change-Id: I85322a432b11e8af85001525d1e9dc218f9a0bd6
Paul Wilkins [Thu, 3 Nov 2011 12:50:09 +0000 (12:50 +0000)]
Segment Features. Removal of #ifdefs
Removal of configure #ifdefs so that segment features
always available. Removal of code supporting old
segment feature method.
Still a good deal of tidying up to do.
Change-Id: I397855f086f8c09ab1fae0a5f65d9e06d2e3e39f
Paul Wilkins [Thu, 3 Nov 2011 12:58:43 +0000 (12:58 +0000)]
Merge "Segmentation: Reference frames" into experimental
Paul Wilkins [Wed, 2 Nov 2011 14:48:17 +0000 (14:48 +0000)]
Merge "Change to prevent encoding of effect-less 2nd order coefficients" into experimental
Paul Wilkins [Wed, 2 Nov 2011 13:30:10 +0000 (13:30 +0000)]
Segmentation: Reference frames
Modify reference frame segmentation so that ONE or MORE
reference frames may be marked as a available for a given
segment.
Fixed bugs relating to segment coding of INTRA and some
INTER modes at the segment level.
Modified Q boost for static areas based on ambient average Q.
Strong results now on clips with significant static areas.
(some data points in derf set as high as 9% and some static &
slide show type content in YT set > 20%)
Change-Id: Ia79f912efa84b977f35a23683ae3643251e24f0c
Adrian Grange [Tue, 1 Nov 2011 15:41:43 +0000 (08:41 -0700)]
Deleted repeated code block
The block of code skipped testing the current mode if the
reference frame is AltRef, the mv is not (0,0) and
ARNR filtering is disabled.
This block of code has already been tested above if the
macro CONFIG_SEGFEATURES is set to 0.
Change-Id: I3f5710bb8270caad06c9a0eee59fa0daf1f70776
Adrian Grange [Mon, 31 Oct 2011 19:42:00 +0000 (12:42 -0700)]
Fixed this_mode used before set in vp8_pick_inter_mode
The variable this_mode was being used before it had been
initialized.
Moved the line that sets-up this_mode toward the top of the
enclosing loop, prior to its first use. The bug would result in
tests in the loop lagging the mode that was expected to be
tested.
Change-Id: If4e51600449ce6b4285f112da17a44c24b4a19fb
Paul Wilkins [Fri, 28 Oct 2011 14:27:23 +0000 (15:27 +0100)]
Segmentation Entropy and tweaks.
Some correction for entropy impact of segment signaled (EOB and ref frame)
Other slight tweaks.
Derf VBR average gain now over 1% (best over 7%)
One YT test clip has gains of circa 30% (VBR)
There is still an issue with noisy clips where making the background static
and coded with 0,0 can have a negative effect, especially at low Q.
This is probably because of the loss of smoothing by fractional pixel filters.
Change-Id: I7a225613c98067b96f8fc7a7e36f95d465b2b834
Paul Wilkins [Thu, 27 Oct 2011 11:35:36 +0000 (12:35 +0100)]
Resolve build problem
Resolved experimental branch build problem when seg_features not configured.
Change-Id: Ia0f9b460a26dc3eac9844ee595a7b196e9faf6a5
Yaowu Xu [Tue, 25 Oct 2011 17:25:02 +0000 (10:25 -0700)]
Change to prevent encoding of effect-less 2nd order coefficients
similar logic to http://gerrit.chromium.org/gerrit/#change,10359
Change-Id: Ia12acd2f2b3b92ef2a601da43c2497034ef62174
Yaowu Xu [Tue, 25 Oct 2011 16:08:51 +0000 (16:08 +0000)]
Merge "added a last stage rounding for 8x8 inverse dct" into experimental
Yaowu Xu [Fri, 14 Oct 2011 16:58:35 +0000 (09:58 -0700)]
added a last stage rounding for 8x8 inverse dct
Prior to the added rounding, tests on randomly generated data showed
that forward-inverse transform round trip errors are about 3.02/block
for input range [-10,10] and 2.68/block for input range [-256, 255].
The added rounding reduced the errors to 0.031/block for input range
[-10,10] and 0.037/block for input range [-256, 255].
Maximum round trip error on for any pixel position is 1.
The average errors are calculated based on 100,000 blocks of randomly
with the specified ranges.
Paul mentioned in discussion that the change was not clear on why we
need change the rounding, so Patch 2 intends to make the rationale
obvious in code, it merged the two separate shifts into one, and the
two separate rounding factors into one. Patch 1 and 2 have same
numerical test results.
Change-Id: Ic5e2f5463de17253084d8b2398c4a210194b20de
Paul Wilkins [Fri, 7 Oct 2011 15:58:28 +0000 (16:58 +0100)]
Segmentation Features;
Only encode sign bit for feature data that can have a sign.
Tweaks to the test segmentation rules so that it now actually gives
a net benefit on the derf set of about 0.4% though much higher
on some clips at the low end.
Change-Id: I8e61f1aebf41c9037db7e67e2f8975aa18a0c986
Paul Wilkins [Wed, 5 Oct 2011 10:26:00 +0000 (11:26 +0100)]
Further segment feature extensions.
This quite large check in includes the following:
Merge in some code from Ronald (mbgraph.c) that scans a Gf/arf group.
This is used as a basis for a simple segmentation for the normal frames
in a gf/arf group. This code also uses satd functions from Yaowu.
Adds functionality for coding the latest possible position of an EOB for
blocks in the segment. (Currently 0-15 only, hence just for 4x4 dct).
Where the EOB position is 0 this acts like "skip" and the normal coding
of skip at the per mb level is disabled.
Added functions (seg_common.c) for setting and reading segment feature
elements. These may want to be optimized away at some point but while the
mecahnism is in a state of flux they provide a single location for making
changes and keep things a bit cleaner.
This is still proof of concept code. Currently the tested feature set:-
Quantizer,
Loop Filter level,
Reference frame,
Prediction Mode,
EOB end stop.
TBD:-
Add functions for setting and reading the feature data with range
and validity checking.
Handling of signed and unsigned feature data. At the moment all is assumed
to be signed and a sign bit is coded but many cannot be negative.
Correct handling of EOB feature with intra coded blocks.
Testing/trapping of legal/illegal ref frame and mode combinations.
Transform size switch plus merge and test with 8c8 DCT work
Merge and test with Sumans Segmenation coding optimizations
Change-Id: Iee12e83661c7abbd1e0ce6810915eb4ec35e2d8e
Yaowu Xu [Wed, 12 Oct 2011 17:49:49 +0000 (10:49 -0700)]
fixed the wrong rounding in inverse haar transform
Given the current forward haar transform:
f0 = I0 + I1 + I2 + I3
f1 = I0 + I1 - I2 - I3
f2 = I0 - I1 + I2 - I3
f3 = I0 - I1 - I2 + I3
the output of the inverse haar prior rounding:
i0 = f0 + f1 + f2 + f3 = I0 * 4;
i1 = f0 + f1 - f2 - f3 = I1 * 4;
i2 = f0 - f1 + f2 - f3 = I2 * 4;
i3 = f0 - f1 - f2 + f3 = I3 * 4;
As all the numbers are 4 multiples, simply >>2 always produces prefect
results in term of forward-inverse transform round trip error.
Change-Id: Id6658b00ea819ee61cfeef8c5985d4cd3e77f44e
Yaowu Xu [Sat, 8 Oct 2011 22:48:53 +0000 (15:48 -0700)]
fixed a decoder bug
When 8x8 transform is enabled, the decoder does an extra reconstruct
on MBs that are coded using 8x8. This commit fixed the logic around
the decoding of mb encoded with 8x8 transform.
Change-Id: I6926557c9ef00eecb375f62946f7e140c660bf6f
Paul Wilkins [Fri, 30 Sep 2011 15:45:16 +0000 (16:45 +0100)]
Segment coding of mode and reference frame.
Proof of concept test code that encodes mode and reference
frame data at the segment level.
Decode-able bit stream but some issues not yet resolved.
As it this helps a little on a couple of clips but hurts on most as
the basis for segmentation is unsound.
To build and test, configure with
--enable-experimental --enable-segfeatures
Change-Id: I22a60774f69273523fb152db8c31f4b10b07c7f4
Paul Wilkins [Fri, 30 Sep 2011 15:08:37 +0000 (16:08 +0100)]
Experimental: segfeature added.
New setting added to configure script
John Koleszar [Thu, 22 Sep 2011 04:05:08 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream-experimental' into HEAD
John Koleszar [Wed, 21 Sep 2011 04:05:04 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream' into HEAD
John Koleszar [Wed, 21 Sep 2011 04:05:04 +0000 (00:05 -0400)]
Merge remote branch 'origin/master' into experimental
Change-Id: I4e515276d197e1dfb1f3e75edfa9823d08c9b366
John Koleszar [Wed, 21 Sep 2011 04:05:04 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream-experimental' into HEAD
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
John Koleszar [Tue, 20 Sep 2011 04:05:04 +0000 (00:05 -0400)]
Merge remote branch 'origin/master' into experimental
Change-Id: I717768a6b248bd4ae3a96f711287758ba78a384a
John Koleszar [Tue, 20 Sep 2011 04:05:04 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream' into HEAD
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 [Sun, 18 Sep 2011 04:05:06 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream-experimental' into HEAD
John Koleszar [Sat, 17 Sep 2011 04:05:04 +0000 (00:05 -0400)]
Merge remote branch 'origin/master' into experimental
Change-Id: I83fd03ca0970314c81e834857cbd911dffa9a9de
John Koleszar [Sat, 17 Sep 2011 04:05:04 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream' into HEAD
John Koleszar [Sat, 17 Sep 2011 04:05:04 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream-experimental' into HEAD
Yaowu Xu [Wed, 31 Aug 2011 19:01:58 +0000 (12:01 -0700)]
enable selecting&transmitting to for intra mode entropy
This commit added a 3 bit index to the bitstream, the index is used to
look into the intra mode coding entropy context table. The commit uses
the mode stats to calculate the cost of transmitting modes using 8
possible entropy distributions, and selects the distribution that
provides the lowest cost to do the actual mode coding.
Initial test show this provides additional .2%~.3% gain over quantizer
adaptive intra mode coding. So the adaptive intra mode coding provides
a total of .5%(psnr) to .6% gain(ssim) combined for all-key-encoding
To build and test, configure with
--enable-experimental --enable-qimode
Change-Id: I7c41cd8bfb352bc1fe7c5da1848a58faea5ed74a
Yaowu Xu [Thu, 4 Aug 2011 23:30:27 +0000 (16:30 -0700)]
add quantizer adaptive intra mb mode encoding
make intra mode coding entropy distribution adaptive to baseQindex, an
encoding test on hd clips with all key frame shows universal gain on
all clips in both .2%(psnr) and (ssim).3%.
To build and test, configure with
--enable-experimental --enable-qimode
Change-Id: Iaa69241b984d4fdd8baa6d77ee78c0140f5ac00a
Yaowu Xu [Thu, 4 Aug 2011 23:30:27 +0000 (16:30 -0700)]
add 8x8 intra prediction modes
Patch 1 to Patch 3 is an initial implementation of 8x8 intra prediction
modes, here are with the following assumptions:
a. 8x8 has 4 prediction modes DC, H, V and TM
b. UV 4x4 block use the same mode as corresponding 8x8 area
c. i8x8 modes are enabled for key frame only for now
Patch 4:
d. removed debug code from previous patches
Patch 5:
e. added stats code to collect entropy stats and further cleaned up
Patch 6:
f. changed mode stats code to collect finer stats of modes
Patch 7:
g. normalized i8x8 modes distribution to total at 256 (8bits).
Patch 8:
h. fixed a bug in decoder and removed debug printf output.
Patch 9:
i. more cleanups to address paul's comment
Patch 10:
j. messy rebase/merges to bring the commit up to date.
Tests on HD clips encoded with all key frame showing consistent gain
on all clips and all metrics:~0.5%(psnr) and 0.6%(ssim):
http://www.corp.google.com/~yaowu/no_crawl/i8x8hd_allkey_fixedq.html
To build and test, configure with:
--enable-experimental --enable-i8x8
Change-Id: I9813fe07ae48cab5fdb5d904bca022514ad01e7f
John Koleszar [Fri, 16 Sep 2011 15:09:44 +0000 (08:09 -0700)]
Merge "Fixes the boundary checks for extrapolated and interpolated MVs."
John Koleszar [Fri, 16 Sep 2011 13:22:29 +0000 (09:22 -0400)]
Merge remote branch 'internal/upstream' into HEAD
Conflicts:
vp8/decoder/decodframe.c
vp8/encoder/encodeframe.c
vp8/encoder/encodemb.c
Change-Id: I6e0d1669e4409a2dfd73ba2c7038d730842d3953
John Koleszar [Fri, 16 Sep 2011 12:54:15 +0000 (08:54 -0400)]
Merge remote branch 'internal/upstream-experimental' into HEAD
John Koleszar [Fri, 16 Sep 2011 12:53:05 +0000 (08:53 -0400)]
Merge remote branch 'origin/master' into experimental
Change-Id: I20df6781013786cbf56ded31e1c726de6c34bc42
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
Paul Wilkins [Wed, 14 Sep 2011 17:20:25 +0000 (18:20 +0100)]
Segment Feature Signaling
Plumbing for tuning new segment features on and off.
Change-Id: If86cd6f103296b73030e8af7cf85c5b9bbffdbaf
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
Paul Wilkins [Tue, 13 Sep 2011 14:24:45 +0000 (15:24 +0100)]
Reverse coding order for segment features:
Code all the features for one segment (grouped together)
then all for the next etc. etc. rather than grouping the
data by feature.
Change-Id: I2a65193b3a70aca78f92e855e35d8969d857b6dd
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
Paul Wilkins [Tue, 13 Sep 2011 11:58:04 +0000 (12:58 +0100)]
Change to segment_feature_data[][] structure.
This data structure is now [Segment ID][Features]
rather than [Features][Segment_ID]
I propose as a separate modification to make the experimental
bit stream reflect this such that all the features for a segment
are coded together.
Change-Id: I581e4e3ca2033bdbdef3d9300977a8202f55b4fb
Paul Wilkins [Tue, 13 Sep 2011 10:26:39 +0000 (11:26 +0100)]
Segment Features:
Some basic plumbing added for a range of segment level features.
MB_LVL_* changed to SEG_LVL_* to better reflect meaning.
Change-Id: Iac96da36990aa0e40afc0d86e990df337fd0c50b
Yaowu Xu [Sat, 3 Sep 2011 20:03:41 +0000 (13:03 -0700)]
fixed a decoder bug
the bug appears to be introduced from a merge at Commit:
62400028..
Change-Id: I332d78b673f12e5ef2b0cdd6bab57dc2c8af7a72
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 [Wed, 31 Aug 2011 04:05:09 +0000 (00:05 -0400)]
Merge remote branch 'origin/master' into experimental
Change-Id: I0aaefeafeb6b2b07ec792024edf4751f2860aa23
John Koleszar [Wed, 31 Aug 2011 04:05:05 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream' into HEAD
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
John Koleszar [Sun, 28 Aug 2011 04:05:08 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream-experimental' into HEAD
John Koleszar [Sat, 27 Aug 2011 04:05:10 +0000 (00:05 -0400)]
Merge remote branch 'origin/master' into experimental
Change-Id: I3137fae1f61400f142d58f18663624b62aa0533c
John Koleszar [Sat, 27 Aug 2011 04:05:05 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream' into HEAD
John Koleszar [Sat, 27 Aug 2011 04:05:05 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream-experimental' into HEAD
John Koleszar [Fri, 26 Aug 2011 04:05:11 +0000 (00:05 -0400)]
Merge remote branch 'origin/master' into experimental
Change-Id: If27b6e914cccc1dc23408ee7117b405e1364e779
John Koleszar [Fri, 26 Aug 2011 04:05:06 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream' into HEAD
John Koleszar [Fri, 26 Aug 2011 04:05:05 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream-experimental' into HEAD
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
John Koleszar [Thu, 25 Aug 2011 12:36:19 +0000 (08:36 -0400)]
Merge remote branch 'internal/upstream' into HEAD
Conflicts:
vp8/common/defaultcoefcounts.h
vp8/common/entropy.c
vp8/encoder/bitstream.c
Change-Id: Idd4990c80d5b5494ac036254694015fab449bc08
John Koleszar [Thu, 25 Aug 2011 04:05:11 +0000 (00:05 -0400)]
Merge remote branch 'origin/master' into experimental
Change-Id: Ic9131382306cc18a915f8854ddba33025123968d
John Koleszar [Thu, 25 Aug 2011 04:05:05 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream-experimental' into HEAD
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"
John Koleszar [Wed, 24 Aug 2011 04:05:11 +0000 (00:05 -0400)]
Merge remote branch 'origin/master' into experimental
Change-Id: If53ec5c1219b31e5ef9ae552d9cc79432ebda267
John Koleszar [Wed, 24 Aug 2011 04:05:05 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream' into HEAD
John Koleszar [Wed, 24 Aug 2011 04:05:05 +0000 (00:05 -0400)]
Merge remote branch 'internal/upstream-experimental' into HEAD
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