14 Commits

Author SHA1 Message Date
John Koleszar
26f91d31d1 dixie: simplify bool decoder
Use the simplified bool decoder from the bitstream guide, slightly
modified to prevent reading past the end of the buffer. Modified
the token decoder to use the normal bool decoder rather than
inlining its own.

Change-Id: Ic525e773e9f8331ba548a6505cc6d9e5372a5af0
2011-02-03 09:04:26 -05:00
John Koleszar
829e2af0e1 dixie: add normal loopfilter
This is the more naive implementation as described in the bitstream guide,
rather than the masking version implemented in the reference code. However,
the core function prototypes were left as-is to make it easy to plug in the
reference assembly code.

Verified loopfiltered output matches reference decoder for 500 frames.

Change-Id: Ib4f197e864f07dbb918b6d5e742c6110d57c1f40
2010-07-12 16:36:57 -04:00
John Koleszar
06c0623219 dixie: add idct/add stage
Verified reconstructed (but not loopfiltered) output matches reference
decoder for 500 frames.

Change-Id: Iaa0c4bdd7733f1958cf2b8ed40d4c78f9028e298
2010-07-07 13:30:54 -04:00
John Koleszar
cf7705579b dixie: add intra prediction
This commit adds prediction functions for all the intra modes.

Change-Id: I626e245318f96ee2ce0d965d7454ac7dce0cff79
2010-07-07 13:29:42 -04:00
John Koleszar
86262018ad dixie: implement token decoding
Verified decoded tokens match reference for all profile 0 test
vectors.

Change-Id: I3e5f7431cb0fbe7130331c82b434c4fd67f839cb
2010-06-24 15:00:26 -04:00
John Koleszar
9a63ff2243 dixie: move modemv data tables
Move these tables to their own file, to make modemv.c more readable.

Change-Id: I0c97e51c5b4601348f465be53e1c4b3c88cc7834
2010-06-24 15:00:24 -04:00
John Koleszar
29e1dea8cd dixie: implement keyframe mode decoding
Verified decoded modes matched reference decoder for 1 frame.

Change-Id: I69303aff8fa975dccc943bfe277ea86d55d75147
2010-06-24 15:00:22 -04:00
John Koleszar
948b1d4283 dixie: decode segmentation header
Change-Id: Id46c6f50ee60419ae1387baf74673af02475203d
2010-06-24 15:00:13 -04:00
John Koleszar
5c263fa3ca dixie: initial interface
The "dixie" project will be a rewrite of much of the VP8 decoder core.
Some of the goals are:

  * Increase speed by paying more attention to data locality and
    cache layout, and by eliminating redundant work in general.

  * A different approach to multithreading, to treat all threads as
    equal and working on larger work units than a single MB.

  * Expose more of the bitstream to the application, essentially
    creating a vp8 parser utility. This could be useful for analyzing
    the complexity of a stream, to help set conformance points.

  * If the above goals are met successfully, replace the reference
    decoder.

For those interested in the etymology of the term "dixie:"
  decoder2 -> dx2 -> dxii -> dixie

Change-Id: I4ef0832b62ea96e9cfa1906c4a77f4b51e0c62d6
2010-06-24 15:00:06 -04:00
John Koleszar
94c52e4da8 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
2010-06-18 13:06:11 -04:00
John Koleszar
7aa97a35b5 shared library support (.so)
This patch adds support for building shared libraries when configured
with the --enable-shared switch.

Building DLLs would require more invasive changes to the sample
utilities than I want to make in this patch, since on Windows you can't
use the address of an imported symbol in a static initializer. The best
way to work around this is proably to build the codec interface mapping
table with an init() function, but dll support is of questionable value
anyway, since most windows users will probably use a media framework
lib like webmdshow, which links this library in staticly.

Change-Id: Iafb48900549b0c6b67f4a05d3b790b2643d026f4
2010-06-05 16:47:23 -04:00
John Koleszar
09202d8071 LICENSE: update with latest text
Change-Id: Ieebea089095d9073b3a94932791099f614ce120c
2010-06-04 16:19:40 -04:00
John Koleszar
b7492341ac install includes in DIST_DIR/include/vpx, move vpx_codec/ to vpx/
This renames the vpx_codec/ directory to vpx/, to allow applications
to more consistently reference these includes with the vpx/ prefix.
This allows the includes to be installed in /usr/local/include/vpx
rather than polluting the system includes directory with an
excessive number of includes.

Change-Id: I7b0652a20543d93f38f421c60b0bbccde4d61b4f
2010-05-24 20:27:42 -04:00
John Koleszar
0ea50ce9cb Initial WebM release 2010-05-18 11:58:33 -04:00