Mercurial > libavcodec.hg
comparison vp56rac.c @ 12365:7c54834209f6 libavcodec
VP5/6/8: eliminate CABAC dependency
Create a custom table for VP5/6/8's renorm to avoid depending on H.264's.
Saves one instruction in the arithmetic decoder as well.
author | darkshikari |
---|---|
date | Wed, 04 Aug 2010 23:04:05 +0000 |
parents | |
children | d0b25641338b |
comparison
equal
deleted
inserted
replaced
12364:2e96cab6ecde | 12365:7c54834209f6 |
---|---|
1 /* | |
2 * VP5/6/8 decoder | |
3 * Copyright (c) 2010 Jason Garrett-Glaser <darkshikari@gmail.com> | |
4 * | |
5 * This file is part of FFmpeg. | |
6 * | |
7 * FFmpeg is free software; you can redistribute it and/or | |
8 * modify it under the terms of the GNU Lesser General Public | |
9 * License as published by the Free Software Foundation; either | |
10 * version 2.1 of the License, or (at your option) any later version. | |
11 * | |
12 * FFmpeg is distributed in the hope that it will be useful, | |
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
15 * Lesser General Public License for more details. | |
16 * | |
17 * You should have received a copy of the GNU Lesser General Public | |
18 * License along with FFmpeg; if not, write to the Free Software | |
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
20 */ | |
21 | |
22 #include "libavutil/common.h" | |
23 #include "vp56.h" | |
24 | |
25 const uint8_t ff_vp56_norm_shift[256]= { | |
26 8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4, | |
27 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, | |
28 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
29 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, | |
30 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
31 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
32 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
33 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, | |
34 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | |
35 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | |
36 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | |
37 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, | |
38 }; | |
39 | |
40 void ff_vp56_init_range_decoder(VP56RangeCoder *c, const uint8_t *buf, int buf_size) | |
41 { | |
42 c->high = 255; | |
43 c->bits = -8; | |
44 c->buffer = buf; | |
45 c->end = buf + buf_size; | |
46 c->code_word = bytestream_get_be16(&c->buffer); | |
47 } |