1. 24 Oct, 2011 1 commit
• added a last stage rounding for 8x8 inverse dct · a66c945c
Yaowu Xu authored
```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```
2. 14 Oct, 2011 1 commit
• fixed the wrong rounding in inverse haar transform · 152ce6b2
Yaowu Xu authored
```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```
3. 08 Oct, 2011 1 commit
• fixed a decoder bug · 3ca84969
Yaowu Xu authored
```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```
4. 30 Sep, 2011 2 commits
• Segment coding of mode and reference frame. · 156b221a
Paul Wilkins authored
```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```
• Experimental: segfeature added. · 45e49e6e
Paul Wilkins authored
`New setting added to configure script`
5. 22 Sep, 2011 1 commit
6. 21 Sep, 2011 3 commits
7. 20 Sep, 2011 10 commits
8. 19 Sep, 2011 3 commits
• Fix necessary for input partitions iface to match the RTP profile · e529a825
Stefan Holmer authored
```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```
• Updated ARMv6 forward transforms to match C · 4c3ad66b
Tero Rintaluoma authored
```- Updated walsh transform to match C
(based on Change Id24f3392)
- Changed fast_fdct4x4 and 8x4 to short_fdct4x4 and 8x4
correspondingly

Change-Id: I704e862f40e315b0a79997633c7bd9c347166a8e```
• NEON walsh transform updated to match C · 2a4b2a00
Tero Rintaluoma authored
```Modified original patch If2f07220885c4c3a0cae0dace34ea0e36124f001
according to comments. Scheduled code a little bit to prevent some
interlocks.

Change-Id: I338f02b881098782f82af63d97f042b85e63e902```
9. 18 Sep, 2011 1 commit
10. 17 Sep, 2011 3 commits
11. 16 Sep, 2011 8 commits
• enable selecting&transmitting to for intra mode entropy · 1d44e7ce
Yaowu Xu authored
```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```
• add quantizer adaptive intra mb mode encoding · aac2c126
Yaowu Xu authored
```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```
• add 8x8 intra prediction modes · ca6b85aa
Yaowu Xu authored
```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):

To build and test, configure with:
--enable-experimental --enable-i8x8

• Merge remote branch 'internal/upstream' into HEAD · 62371d38
John Koleszar authored
```Conflicts:
vp8/decoder/decodframe.c
vp8/encoder/encodeframe.c
vp8/encoder/encodemb.c

Change-Id: I6e0d1669e4409a2dfd73ba2c7038d730842d3953```
• Merge remote branch 'origin/master' into experimental · 1158bcd8
John Koleszar authored
`Change-Id: I20df6781013786cbf56ded31e1c726de6c34bc42`
• Fixes the boundary checks for extrapolated and interpolated MVs. · b854bbd8
Stefan Holmer authored
`Change-Id: I5b47d39d1604f2650d2f2d1ca2a3f40843c8e1ea`
12. 15 Sep, 2011 1 commit
• Segment Feature Signaling · ceb51742
Paul Wilkins authored
```Plumbing for tuning new segment features on and off.

Change-Id: If86cd6f103296b73030e8af7cf85c5b9bbffdbaf```
13. 14 Sep, 2011 2 commits
14. 13 Sep, 2011 3 commits
• Reverse coding order for segment features: · 1741cc7a
Paul Wilkins authored
```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```
• Fixed encoder crash · 5bc7b3a6
Scott LaVarnway authored
```caused by the "Removed bmi copy to/from BLOCKD" commit.

Change-Id: I9fae71bdc34c8ecc07bb81cd3ccf498b91ce3ec7```
• Change to segment_feature_data[][] structure. · 1c24442a
Paul Wilkins authored
```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```