summaryrefslogtreecommitdiff
path: root/libavcodec/vp3data.h
diff options
context:
space:
mode:
authorMike Melanson <mike@multimedia.cx>2005-05-18 00:11:49 +0000
committerMike Melanson <mike@multimedia.cx>2005-05-18 00:11:49 +0000
commitd8278bab79ffc82f449522766fbd505dd64b6c1c (patch)
tree46776cd86fa0e1178cad1d6b1cde5871e1a932c0 /libavcodec/vp3data.h
parent0ad72bdd5cb493df78c660b9859a8b890018926a (diff)
replace get_superblock_run_length() with a VLC table
Originally committed as revision 4267 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/vp3data.h')
-rw-r--r--libavcodec/vp3data.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/libavcodec/vp3data.h b/libavcodec/vp3data.h
index 5a5ff9cac5..893a5873a0 100644
--- a/libavcodec/vp3data.h
+++ b/libavcodec/vp3data.h
@@ -72,6 +72,27 @@ static const uint32_t vp31_filter_limit_values[64] =
0, 0, 0, 0, 0, 0, 0, 0
};
+static const uint16_t superblock_run_length_vlc_table[34][2] = {
+ { 0, 1 },
+
+ { 4, 3 }, { 5, 3 },
+
+ { 0xC, 4 }, { 0xD, 4 },
+
+ { 0x38, 6 }, { 0x39, 6 }, { 0x3A, 6 }, { 0x3B, 6 },
+
+ { 0xF0, 8 }, { 0xF1, 8 }, { 0xF2, 8 }, { 0xF3, 8 },
+ { 0xF4, 8 }, { 0xF5, 8 }, { 0xF6, 8 }, { 0xF7, 8 },
+
+ { 0x3E0, 10 }, { 0x3E1, 10 }, { 0x3E2, 10 }, { 0x3E3, 10 },
+ { 0x3E4, 10 }, { 0x3E5, 10 }, { 0x3E6, 10 }, { 0x3E7, 10 },
+ { 0x3E8, 10 }, { 0x3E9, 10 }, { 0x3EA, 10 }, { 0x3EB, 10 },
+ { 0x3EC, 10 }, { 0x3ED, 10 }, { 0x3EE, 10 }, { 0x3EF, 10 },
+
+ { 0x3F, 6 } /* this last VLC is a special case for reading 12 more
+ bits from stream and adding the value 34 */
+};
+
static const uint16_t fragment_run_length_vlc_table[30][2] = {
/* 1 -> 2 */
{ 0x0, 2 }, { 0x1, 2 },