Mercurial > libavcodec.hg
annotate ivi_common.c @ 11557:53822d92c3f7 libavcodec
Make sure the EC code does not attempt to use inter based concealment if there
is no reference frame available. (this can happen because the EC code will attempt
to use reference frames even for I/IDR frames)
author | michael |
---|---|
date | Tue, 30 Mar 2010 20:46:46 +0000 |
parents | 43ae6b3f9e15 |
children | 7dd2a45249a9 |
rev | line source |
---|---|
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
1 /* |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
2 * common functions for Indeo Video Interactive codecs (Indeo4 and Indeo5) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
3 * |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
4 * Copyright (c) 2009 Maxim Poliakovski |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
5 * |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
6 * This file is part of FFmpeg. |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
7 * |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
8 * FFmpeg is free software; you can redistribute it and/or |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
9 * modify it under the terms of the GNU Lesser General Public |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
10 * License as published by the Free Software Foundation; either |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
11 * version 2.1 of the License, or (at your option) any later version. |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
12 * |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
13 * FFmpeg is distributed in the hope that it will be useful, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
16 * Lesser General Public License for more details. |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
17 * |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
18 * You should have received a copy of the GNU Lesser General Public |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
19 * License along with FFmpeg; if not, write to the Free Software |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
21 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
22 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
23 /** |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
24 * @file libavcodec/ivi_common.c |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
25 * This file contains functions and data shared by both Indeo4 and |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
26 * Indeo5 decoders. |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
27 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
28 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
29 #define ALT_BITSTREAM_READER_LE |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
30 #include "avcodec.h" |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
31 #include "get_bits.h" |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
32 #include "ivi_common.h" |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
33 #include "libavutil/common.h" |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
34 #include "ivi_dsp.h" |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
35 |
11246
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
36 extern const IVIHuffDesc ff_ivi_mb_huff_desc[8]; ///< static macroblock huffman tables |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
37 extern const IVIHuffDesc ff_ivi_blk_huff_desc[8]; ///< static block huffman tables |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
38 |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
39 VLC ff_ivi_mb_vlc_tabs [8]; |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
40 VLC ff_ivi_blk_vlc_tabs[8]; |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
41 |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
42 /** |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
43 * Reverses "nbits" bits of the value "val" and returns the result |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
44 * in the least significant bits. |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
45 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
46 static uint16_t inv_bits(uint16_t val, int nbits) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
47 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
48 uint16_t res; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
49 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
50 if (nbits <= 8) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
51 res = av_reverse[val] >> (8-nbits); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
52 } else |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
53 res = ((av_reverse[val & 0xFF] << 8) + (av_reverse[val >> 8])) >> (16-nbits); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
54 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
55 return res; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
56 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
57 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
58 int ff_ivi_create_huff_from_desc(const IVIHuffDesc *cb, VLC *vlc, int flag) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
59 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
60 int pos, i, j, codes_per_row, prefix, not_last_row; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
61 uint16_t codewords[256]; /* FIXME: move this temporal storage out? */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
62 uint8_t bits[256]; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
63 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
64 pos = 0; /* current position = 0 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
65 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
66 for (i = 0; i < cb->num_rows; i++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
67 codes_per_row = 1 << cb->xbits[i]; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
68 not_last_row = (i != cb->num_rows - 1); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
69 prefix = ((1 << i) - 1) << (cb->xbits[i] + not_last_row); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
70 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
71 for (j = 0; j < codes_per_row; j++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
72 if (pos >= 256) /* Some Indeo5 codebooks can have more than 256 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
73 break; /* elements, but only 256 codes are allowed! */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
74 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
75 bits[pos] = i + cb->xbits[i] + not_last_row; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
76 if (bits[pos] > IVI_VLC_BITS) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
77 return -1; /* invalid descriptor */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
78 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
79 codewords[pos] = inv_bits((prefix | j), bits[pos]); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
80 if (!bits[pos]) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
81 bits[pos] = 1; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
82 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
83 pos++; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
84 }//for j |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
85 }//for i |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
86 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
87 /* number of codewords = pos */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
88 return init_vlc(vlc, IVI_VLC_BITS, pos, bits, 1, 1, codewords, 2, 2, |
11246
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
89 (flag ? INIT_VLC_USE_NEW_STATIC : 0) | INIT_VLC_LE); |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
90 } |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
91 |
11308
06e2ff1295bd
Make it clear that ff_ivi_init_static_vlc() does not need arguments
kostya
parents:
11255
diff
changeset
|
92 void ff_ivi_init_static_vlc(void) |
11246
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
93 { |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
94 int i; |
11250 | 95 static VLC_TYPE table_data[8192 * 16][2]; |
11246
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
96 static int initialized_vlcs = 0; |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
97 |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
98 if (initialized_vlcs) |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
99 return; |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
100 for (i = 0; i < 8; i++) { |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
101 ff_ivi_mb_vlc_tabs[i].table = table_data + i * 2 * 8192; |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
102 ff_ivi_mb_vlc_tabs[i].table_allocated = 8192; |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
103 ff_ivi_create_huff_from_desc(&ff_ivi_mb_huff_desc[i], &ff_ivi_mb_vlc_tabs[i], 1); |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
104 ff_ivi_blk_vlc_tabs[i].table = table_data + (i * 2 + 1) * 8192; |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
105 ff_ivi_blk_vlc_tabs[i].table_allocated = 8192; |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
106 ff_ivi_create_huff_from_desc(&ff_ivi_blk_huff_desc[i], &ff_ivi_blk_vlc_tabs[i], 1); |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
107 } |
b75449aaea3e
Macroblock and block Huffman code sets are to be used by both Indeo 4 and
kostya
parents:
11054
diff
changeset
|
108 initialized_vlcs = 1; |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
109 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
110 |
11309
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
111 int ff_ivi_dec_huff_desc(GetBitContext *gb, int desc_coded, int which_tab, |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
112 IVIHuffTab *huff_tab, AVCodecContext *avctx) |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
113 { |
11309
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
114 int i, result; |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
115 IVIHuffDesc new_huff; |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
116 |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
117 if (!desc_coded) { |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
118 /* select default table */ |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
119 huff_tab->tab = (which_tab) ? &ff_ivi_blk_vlc_tabs[7] |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
120 : &ff_ivi_mb_vlc_tabs [7]; |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
121 } else { |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
122 huff_tab->tab_sel = get_bits(gb, 3); |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
123 if (huff_tab->tab_sel == 7) { |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
124 /* custom huffman table (explicitly encoded) */ |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
125 new_huff.num_rows = get_bits(gb, 4); |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
126 |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
127 for (i = 0; i < new_huff.num_rows; i++) |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
128 new_huff.xbits[i] = get_bits(gb, 4); |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
129 |
11309
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
130 /* Have we got the same custom table? Rebuild if not. */ |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
131 if (ff_ivi_huff_desc_cmp(&new_huff, &huff_tab->cust_desc)) { |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
132 ff_ivi_huff_desc_copy(&huff_tab->cust_desc, &new_huff); |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
133 |
11309
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
134 if (huff_tab->cust_tab.table) |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
135 free_vlc(&huff_tab->cust_tab); |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
136 result = ff_ivi_create_huff_from_desc(&huff_tab->cust_desc, |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
137 &huff_tab->cust_tab, 0); |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
138 if (result) { |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
139 av_log(avctx, AV_LOG_ERROR, |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
140 "Error while initializing custom vlc table!\n"); |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
141 return -1; |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
142 } |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
143 } |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
144 huff_tab->tab = &huff_tab->cust_tab; |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
145 } else { |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
146 /* select one of predefined tables */ |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
147 huff_tab->tab = (which_tab) ? &ff_ivi_blk_vlc_tabs[huff_tab->tab_sel] |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
148 : &ff_ivi_mb_vlc_tabs [huff_tab->tab_sel]; |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
149 } |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
150 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
151 |
11309
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
152 return 0; |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
153 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
154 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
155 int ff_ivi_huff_desc_cmp(const IVIHuffDesc *desc1, const IVIHuffDesc *desc2) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
156 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
157 return desc1->num_rows != desc2->num_rows |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
158 || memcmp(desc1->xbits, desc2->xbits, desc1->num_rows); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
159 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
160 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
161 void ff_ivi_huff_desc_copy(IVIHuffDesc *dst, const IVIHuffDesc *src) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
162 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
163 dst->num_rows = src->num_rows; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
164 memcpy(dst->xbits, src->xbits, src->num_rows); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
165 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
166 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
167 int av_cold ff_ivi_init_planes(IVIPlaneDesc *planes, const IVIPicConfig *cfg) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
168 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
169 int p, b; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
170 uint32_t b_width, b_height, align_fac, width_aligned, height_aligned, buf_size; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
171 IVIBandDesc *band; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
172 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
173 ff_ivi_free_buffers(planes); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
174 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
175 /* fill in the descriptor of the luminance plane */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
176 planes[0].width = cfg->pic_width; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
177 planes[0].height = cfg->pic_height; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
178 planes[0].num_bands = cfg->luma_bands; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
179 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
180 /* fill in the descriptors of the chrominance planes */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
181 planes[1].width = planes[2].width = (cfg->pic_width + 3) >> 2; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
182 planes[1].height = planes[2].height = (cfg->pic_height + 3) >> 2; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
183 planes[1].num_bands = planes[2].num_bands = cfg->chroma_bands; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
184 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
185 for (p = 0; p < 3; p++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
186 planes[p].bands = av_mallocz(planes[p].num_bands * sizeof(IVIBandDesc)); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
187 if (!planes[p].bands) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
188 return AVERROR(ENOMEM); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
189 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
190 /* select band dimensions: if there is only one band then it |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
191 * has the full size, if there are several bands each of them |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
192 * has only half size */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
193 b_width = planes[p].num_bands == 1 ? planes[p].width : (planes[p].width + 1) >> 1; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
194 b_height = planes[p].num_bands == 1 ? planes[p].height : (planes[p].height + 1) >> 1; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
195 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
196 /* luma band buffers will be aligned on 16x16 (max macroblock size) */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
197 /* chroma band buffers will be aligned on 8x8 (max macroblock size) */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
198 align_fac = p ? 8 : 16; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
199 width_aligned = FFALIGN(b_width , align_fac); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
200 height_aligned = FFALIGN(b_height, align_fac); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
201 buf_size = width_aligned * height_aligned * sizeof(int16_t); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
202 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
203 for (b = 0; b < planes[p].num_bands; b++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
204 band = &planes[p].bands[b]; /* select appropriate plane/band */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
205 band->plane = p; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
206 band->band_num = b; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
207 band->width = b_width; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
208 band->height = b_height; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
209 band->pitch = width_aligned; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
210 band->bufs[0] = av_malloc(buf_size); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
211 band->bufs[1] = av_malloc(buf_size); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
212 if (!band->bufs[0] || !band->bufs[1]) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
213 return AVERROR(ENOMEM); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
214 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
215 /* allocate the 3rd band buffer for scalability mode */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
216 if (cfg->luma_bands > 1) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
217 band->bufs[2] = av_malloc(buf_size); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
218 if (!band->bufs[2]) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
219 return AVERROR(ENOMEM); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
220 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
221 |
11309
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
222 planes[p].bands[0].blk_vlc.cust_desc.num_rows = 0; /* reset custom vlc */ |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
223 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
224 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
225 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
226 return 0; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
227 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
228 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
229 void av_cold ff_ivi_free_buffers(IVIPlaneDesc *planes) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
230 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
231 int p, b, t; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
232 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
233 for (p = 0; p < 3; p++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
234 for (b = 0; b < planes[p].num_bands; b++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
235 av_freep(&planes[p].bands[b].bufs[0]); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
236 av_freep(&planes[p].bands[b].bufs[1]); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
237 av_freep(&planes[p].bands[b].bufs[2]); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
238 |
11309
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
239 if (planes[p].bands[b].blk_vlc.cust_tab.table) |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
240 free_vlc(&planes[p].bands[b].blk_vlc.cust_tab); |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
241 for (t = 0; t < planes[p].bands[b].num_tiles; t++) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
242 av_freep(&planes[p].bands[b].tiles[t].mbs); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
243 av_freep(&planes[p].bands[b].tiles); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
244 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
245 av_freep(&planes[p].bands); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
246 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
247 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
248 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
249 int av_cold ff_ivi_init_tiles(IVIPlaneDesc *planes, int tile_width, int tile_height) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
250 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
251 int p, b, x, y, x_tiles, y_tiles, t_width, t_height; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
252 IVIBandDesc *band; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
253 IVITile *tile, *ref_tile; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
254 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
255 for (p = 0; p < 3; p++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
256 t_width = !p ? tile_width : (tile_width + 3) >> 2; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
257 t_height = !p ? tile_height : (tile_height + 3) >> 2; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
258 |
11402
43ae6b3f9e15
Scale tile dimensions in case both local decoding and scalability mode
kostya
parents:
11384
diff
changeset
|
259 if (!p && planes[0].num_bands == 4) { |
43ae6b3f9e15
Scale tile dimensions in case both local decoding and scalability mode
kostya
parents:
11384
diff
changeset
|
260 t_width >>= 1; |
43ae6b3f9e15
Scale tile dimensions in case both local decoding and scalability mode
kostya
parents:
11384
diff
changeset
|
261 t_height >>= 1; |
43ae6b3f9e15
Scale tile dimensions in case both local decoding and scalability mode
kostya
parents:
11384
diff
changeset
|
262 } |
43ae6b3f9e15
Scale tile dimensions in case both local decoding and scalability mode
kostya
parents:
11384
diff
changeset
|
263 |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
264 for (b = 0; b < planes[p].num_bands; b++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
265 band = &planes[p].bands[b]; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
266 x_tiles = IVI_NUM_TILES(band->width, t_width); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
267 y_tiles = IVI_NUM_TILES(band->height, t_height); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
268 band->num_tiles = x_tiles * y_tiles; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
269 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
270 av_freep(&band->tiles); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
271 band->tiles = av_mallocz(band->num_tiles * sizeof(IVITile)); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
272 if (!band->tiles) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
273 return AVERROR(ENOMEM); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
274 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
275 tile = band->tiles; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
276 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
277 /* use the first luma band as reference for motion vectors |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
278 * and quant */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
279 ref_tile = planes[0].bands[0].tiles; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
280 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
281 for (y = 0; y < band->height; y += t_height) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
282 for (x = 0; x < band->width; x += t_width) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
283 tile->xpos = x; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
284 tile->ypos = y; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
285 tile->width = FFMIN(band->width - x, t_width); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
286 tile->height = FFMIN(band->height - y, t_height); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
287 tile->is_empty = tile->data_size = 0; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
288 /* calculate number of macroblocks */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
289 tile->num_MBs = IVI_MBs_PER_TILE(tile->width, tile->height, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
290 band->mb_size); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
291 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
292 av_freep(&tile->mbs); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
293 tile->mbs = av_malloc(tile->num_MBs * sizeof(IVIMbInfo)); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
294 if (!tile->mbs) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
295 return AVERROR(ENOMEM); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
296 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
297 tile->ref_mbs = 0; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
298 if (p || b) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
299 tile->ref_mbs = ref_tile->mbs; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
300 ref_tile++; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
301 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
302 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
303 tile++; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
304 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
305 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
306 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
307 }// for b |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
308 }// for p |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
309 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
310 return 0; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
311 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
312 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
313 int ff_ivi_dec_tile_data_size(GetBitContext *gb) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
314 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
315 int len; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
316 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
317 len = 0; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
318 if (get_bits1(gb)) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
319 len = get_bits(gb, 8); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
320 if (len == 255) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
321 len = get_bits_long(gb, 24); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
322 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
323 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
324 /* align the bitstream reader on the byte boundary */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
325 align_get_bits(gb); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
326 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
327 return len; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
328 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
329 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
330 int ff_ivi_decode_blocks(GetBitContext *gb, IVIBandDesc *band, IVITile *tile) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
331 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
332 int mbn, blk, num_blocks, num_coeffs, blk_size, scan_pos, run, val, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
333 pos, is_intra, mc_type, mv_x, mv_y, col_mask; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
334 uint8_t col_flags[8]; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
335 int32_t prev_dc, trvec[64]; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
336 uint32_t cbp, sym, lo, hi, quant, buf_offs, q; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
337 IVIMbInfo *mb; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
338 RVMapDesc *rvmap = band->rv_map; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
339 void (*mc_with_delta_func)(int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
340 void (*mc_no_delta_func) (int16_t *buf, const int16_t *ref_buf, uint32_t pitch, int mc_type); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
341 const uint8_t *base_tab, *scale_tab; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
342 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
343 prev_dc = 0; /* init intra prediction for the DC coefficient */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
344 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
345 blk_size = band->blk_size; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
346 col_mask = blk_size - 1; /* column mask for tracking non-zero coeffs */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
347 num_blocks = (band->mb_size != blk_size) ? 4 : 1; /* number of blocks per mb */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
348 num_coeffs = blk_size * blk_size; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
349 if (blk_size == 8) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
350 mc_with_delta_func = ff_ivi_mc_8x8_delta; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
351 mc_no_delta_func = ff_ivi_mc_8x8_no_delta; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
352 } else { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
353 mc_with_delta_func = ff_ivi_mc_4x4_delta; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
354 mc_no_delta_func = ff_ivi_mc_4x4_no_delta; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
355 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
356 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
357 for (mbn = 0, mb = tile->mbs; mbn < tile->num_MBs; mb++, mbn++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
358 is_intra = !mb->type; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
359 cbp = mb->cbp; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
360 buf_offs = mb->buf_offs; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
361 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
362 quant = av_clip(band->glob_quant + mb->q_delta, 0, 23); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
363 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
364 base_tab = is_intra ? band->intra_base : band->inter_base; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
365 scale_tab = is_intra ? band->intra_scale : band->inter_scale; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
366 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
367 if (!is_intra) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
368 mv_x = mb->mv_x; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
369 mv_y = mb->mv_y; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
370 if (!band->is_halfpel) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
371 mc_type = 0; /* we have only fullpel vectors */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
372 } else { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
373 mc_type = ((mv_y & 1) << 1) | (mv_x & 1); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
374 mv_x >>= 1; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
375 mv_y >>= 1; /* convert halfpel vectors into fullpel ones */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
376 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
377 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
378 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
379 for (blk = 0; blk < num_blocks; blk++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
380 /* adjust block position in the buffer according to its number */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
381 if (blk & 1) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
382 buf_offs += blk_size; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
383 } else if (blk == 2) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
384 buf_offs -= blk_size; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
385 buf_offs += blk_size * band->pitch; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
386 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
387 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
388 if (cbp & 1) { /* block coded ? */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
389 scan_pos = -1; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
390 memset(trvec, 0, num_coeffs*sizeof(trvec[0])); /* zero transform vector */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
391 memset(col_flags, 0, sizeof(col_flags)); /* zero column flags */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
392 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
393 while (scan_pos <= num_coeffs) { |
11309
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
394 sym = get_vlc2(gb, band->blk_vlc.tab->table, IVI_VLC_BITS, 1); |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
395 if (sym == rvmap->eob_sym) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
396 break; /* End of block */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
397 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
398 if (sym == rvmap->esc_sym) { /* Escape - run/val explicitly coded using 3 vlc codes */ |
11309
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
399 run = get_vlc2(gb, band->blk_vlc.tab->table, IVI_VLC_BITS, 1) + 1; |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
400 lo = get_vlc2(gb, band->blk_vlc.tab->table, IVI_VLC_BITS, 1); |
d617766bf19b
Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents:
11308
diff
changeset
|
401 hi = get_vlc2(gb, band->blk_vlc.tab->table, IVI_VLC_BITS, 1); |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
402 val = IVI_TOSIGNED((hi << 6) | lo); /* merge them and convert into signed val */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
403 } else { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
404 run = rvmap->runtab[sym]; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
405 val = rvmap->valtab[sym]; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
406 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
407 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
408 /* de-zigzag and dequantize */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
409 scan_pos += run; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
410 if (scan_pos >= num_coeffs) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
411 break; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
412 pos = band->scan[scan_pos]; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
413 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
414 if (IVI_DEBUG && !val) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
415 av_log(NULL, AV_LOG_ERROR, "Val = 0 encountered!\n"); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
416 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
417 q = (base_tab[pos] * scale_tab[quant]) >> 8; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
418 if (q > 1) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
419 val = val * q + FFSIGN(val) * ((q >> 1) - (q & 1)); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
420 trvec[pos] = val; |
11384
ba57caf45845
When tracking non-zero coefficients during Indeo 5 decoding, make sure
kostya
parents:
11309
diff
changeset
|
421 col_flags[pos & col_mask] |= !!val; /* track columns containing non-zero coeffs */ |
11054
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
422 }// while |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
423 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
424 if (scan_pos >= num_coeffs && sym != rvmap->eob_sym) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
425 return -1; /* corrupt block data */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
426 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
427 /* undoing DC coeff prediction for intra-blocks */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
428 if (is_intra && band->is_2d_trans) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
429 prev_dc += trvec[0]; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
430 trvec[0] = prev_dc; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
431 col_flags[0] |= !!prev_dc; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
432 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
433 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
434 /* apply inverse transform */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
435 band->inv_transform(trvec, band->buf + buf_offs, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
436 band->pitch, col_flags); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
437 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
438 /* apply motion compensation */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
439 if (!is_intra) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
440 mc_with_delta_func(band->buf + buf_offs, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
441 band->ref_buf + buf_offs + mv_y * band->pitch + mv_x, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
442 band->pitch, mc_type); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
443 } else { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
444 /* block not coded */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
445 /* for intra blocks apply the dc slant transform */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
446 /* for inter - perform the motion compensation without delta */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
447 if (is_intra && band->dc_transform) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
448 band->dc_transform(&prev_dc, band->buf + buf_offs, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
449 band->pitch, blk_size); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
450 } else |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
451 mc_no_delta_func(band->buf + buf_offs, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
452 band->ref_buf + buf_offs + mv_y * band->pitch + mv_x, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
453 band->pitch, mc_type); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
454 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
455 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
456 cbp >>= 1; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
457 }// for blk |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
458 }// for mbn |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
459 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
460 align_get_bits(gb); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
461 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
462 return 0; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
463 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
464 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
465 void ff_ivi_process_empty_tile(AVCodecContext *avctx, IVIBandDesc *band, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
466 IVITile *tile, int32_t mv_scale) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
467 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
468 int x, y, need_mc, mbn, blk, num_blocks, mv_x, mv_y, mc_type; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
469 int offs, mb_offset, row_offset; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
470 IVIMbInfo *mb, *ref_mb; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
471 const int16_t *src; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
472 int16_t *dst; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
473 void (*mc_no_delta_func)(int16_t *buf, const int16_t *ref_buf, uint32_t pitch, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
474 int mc_type); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
475 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
476 offs = tile->ypos * band->pitch + tile->xpos; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
477 mb = tile->mbs; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
478 ref_mb = tile->ref_mbs; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
479 row_offset = band->mb_size * band->pitch; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
480 need_mc = 0; /* reset the mc tracking flag */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
481 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
482 for (y = tile->ypos; y < (tile->ypos + tile->height); y += band->mb_size) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
483 mb_offset = offs; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
484 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
485 for (x = tile->xpos; x < (tile->xpos + tile->width); x += band->mb_size) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
486 mb->xpos = x; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
487 mb->ypos = y; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
488 mb->buf_offs = mb_offset; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
489 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
490 mb->type = 1; /* set the macroblocks type = INTER */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
491 mb->cbp = 0; /* all blocks are empty */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
492 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
493 if (!band->qdelta_present && !band->plane && !band->band_num) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
494 mb->q_delta = band->glob_quant; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
495 mb->mv_x = 0; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
496 mb->mv_y = 0; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
497 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
498 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
499 if (band->inherit_qdelta && ref_mb) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
500 mb->q_delta = ref_mb->q_delta; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
501 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
502 if (band->inherit_mv) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
503 /* motion vector inheritance */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
504 if (mv_scale) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
505 mb->mv_x = ivi_scale_mv(ref_mb->mv_x, mv_scale); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
506 mb->mv_y = ivi_scale_mv(ref_mb->mv_y, mv_scale); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
507 } else { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
508 mb->mv_x = ref_mb->mv_x; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
509 mb->mv_y = ref_mb->mv_y; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
510 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
511 need_mc |= mb->mv_x || mb->mv_y; /* tracking non-zero motion vectors */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
512 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
513 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
514 mb++; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
515 if (ref_mb) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
516 ref_mb++; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
517 mb_offset += band->mb_size; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
518 } // for x |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
519 offs += row_offset; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
520 } // for y |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
521 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
522 if (band->inherit_mv && need_mc) { /* apply motion compensation if there is at least one non-zero motion vector */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
523 num_blocks = (band->mb_size != band->blk_size) ? 4 : 1; /* number of blocks per mb */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
524 mc_no_delta_func = (band->blk_size == 8) ? ff_ivi_mc_8x8_no_delta |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
525 : ff_ivi_mc_4x4_no_delta; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
526 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
527 for (mbn = 0, mb = tile->mbs; mbn < tile->num_MBs; mb++, mbn++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
528 mv_x = mb->mv_x; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
529 mv_y = mb->mv_y; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
530 if (!band->is_halfpel) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
531 mc_type = 0; /* we have only fullpel vectors */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
532 } else { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
533 mc_type = ((mv_y & 1) << 1) | (mv_x & 1); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
534 mv_x >>= 1; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
535 mv_y >>= 1; /* convert halfpel vectors into fullpel ones */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
536 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
537 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
538 for (blk = 0; blk < num_blocks; blk++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
539 /* adjust block position in the buffer according with its number */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
540 offs = mb->buf_offs + band->blk_size * ((blk & 1) + !!(blk & 2) * band->pitch); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
541 mc_no_delta_func(band->buf + offs, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
542 band->ref_buf + offs + mv_y * band->pitch + mv_x, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
543 band->pitch, mc_type); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
544 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
545 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
546 } else { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
547 /* copy data from the reference tile into the current one */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
548 src = band->ref_buf + tile->ypos * band->pitch + tile->xpos; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
549 dst = band->buf + tile->ypos * band->pitch + tile->xpos; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
550 for (y = 0; y < tile->height; y++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
551 memcpy(dst, src, tile->width*sizeof(band->buf[0])); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
552 src += band->pitch; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
553 dst += band->pitch; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
554 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
555 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
556 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
557 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
558 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
559 #if IVI_DEBUG |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
560 uint16_t ivi_calc_band_checksum (IVIBandDesc *band) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
561 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
562 int x, y; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
563 int16_t *src, checksum; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
564 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
565 src = band->buf; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
566 checksum = 0; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
567 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
568 for (y = 0; y < band->height; src += band->pitch, y++) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
569 for (x = 0; x < band->width; x++) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
570 checksum += src[x]; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
571 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
572 return checksum; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
573 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
574 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
575 int ivi_check_band (IVIBandDesc *band, const uint8_t *ref, int pitch) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
576 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
577 int x, y, result; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
578 uint8_t t1, t2; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
579 int16_t *src; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
580 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
581 src = band->buf; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
582 result = 0; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
583 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
584 for (y = 0; y < band->height; src += band->pitch, y++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
585 for (x = 0; x < band->width; x++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
586 t1 = av_clip(src[x] + 128, 0, 255); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
587 t2 = ref[x]; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
588 if (t1 != t2) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
589 av_log(NULL, AV_LOG_ERROR, "Data mismatch: row %d, column %d\n", |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
590 y / band->blk_size, x / band->blk_size); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
591 result = -1; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
592 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
593 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
594 ref += pitch; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
595 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
596 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
597 return result; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
598 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
599 #endif |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
600 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
601 void ff_ivi_output_plane(IVIPlaneDesc *plane, uint8_t *dst, int dst_pitch) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
602 { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
603 int x, y; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
604 const int16_t *src = plane->bands[0].buf; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
605 uint32_t pitch = plane->bands[0].pitch; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
606 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
607 for (y = 0; y < plane->height; y++) { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
608 for (x = 0; x < plane->width; x++) |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
609 dst[x] = av_clip_uint8(src[x] + 128); |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
610 src += pitch; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
611 dst += dst_pitch; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
612 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
613 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
614 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
615 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
616 /** |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
617 * These are 2x8 predefined Huffman codebooks for coding macroblock/block |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
618 * signals. They are specified using "huffman descriptors" in order to |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
619 * avoid huge static tables. The decoding tables will be generated at |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
620 * startup from these descriptors. |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
621 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
622 const IVIHuffDesc ff_ivi_mb_huff_desc[8] = { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
623 {8, {0, 4, 5, 4, 4, 4, 6, 6}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
624 {12, {0, 2, 2, 3, 3, 3, 3, 5, 3, 2, 2, 2}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
625 {12, {0, 2, 3, 4, 3, 3, 3, 3, 4, 3, 2, 2}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
626 {12, {0, 3, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
627 {13, {0, 4, 4, 3, 3, 3, 3, 2, 3, 3, 2, 1, 1}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
628 {9, {0, 4, 4, 4, 4, 3, 3, 3, 2}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
629 {10, {0, 4, 4, 4, 4, 3, 3, 2, 2, 2}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
630 {12, {0, 4, 4, 4, 3, 3, 2, 3, 2, 2, 2, 2}} |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
631 }; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
632 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
633 const IVIHuffDesc ff_ivi_blk_huff_desc[8] = { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
634 {10, {1, 2, 3, 4, 4, 7, 5, 5, 4, 1}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
635 {11, {2, 3, 4, 4, 4, 7, 5, 4, 3, 3, 2}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
636 {12, {2, 4, 5, 5, 5, 5, 6, 4, 4, 3, 1, 1}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
637 {13, {3, 3, 4, 4, 5, 6, 6, 4, 4, 3, 2, 1, 1}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
638 {11, {3, 4, 4, 5, 5, 5, 6, 5, 4, 2, 2}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
639 {13, {3, 4, 5, 5, 5, 5, 6, 4, 3, 3, 2, 1, 1}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
640 {13, {3, 4, 5, 5, 5, 6, 5, 4, 3, 3, 2, 1, 1}}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
641 {9, {3, 4, 4, 5, 5, 5, 6, 5, 5}} |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
642 }; |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
643 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
644 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
645 /** |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
646 * Run-value (RLE) tables. |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
647 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
648 const RVMapDesc ff_ivi_rvmap_tabs[9] = { |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
649 { /* MapTab0 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
650 5, /* eob_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
651 2, /* esc_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
652 /* run table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
653 {1, 1, 0, 1, 1, 0, 1, 1, 2, 2, 1, 1, 1, 1, 3, 3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
654 1, 1, 2, 2, 1, 1, 4, 4, 1, 1, 1, 1, 2, 2, 5, 5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
655 1, 1, 3, 3, 1, 1, 6, 6, 1, 2, 1, 2, 7, 7, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
656 8, 8, 1, 1, 4, 2, 1, 4, 2, 1, 3, 3, 1, 1, 1, 9, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
657 9, 1, 2, 1, 2, 1, 5, 5, 1, 1, 10, 10, 1, 1, 3, 3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
658 2, 2, 1, 1, 11, 11, 6, 4, 4, 1, 6, 1, 2, 1, 2, 12, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
659 8, 1, 12, 7, 8, 7, 1, 16, 1, 16, 1, 3, 3, 13, 1, 13, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
660 2, 2, 1, 15, 1, 5, 14, 15, 1, 5, 14, 1, 17, 8, 17, 8, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
661 1, 4, 4, 2, 2, 1, 25, 25, 24, 24, 1, 3, 1, 3, 1, 8, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
662 6, 7, 6, 1, 18, 8, 18, 1, 7, 23, 2, 2, 23, 1, 1, 21, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
663 22, 9, 9, 22, 19, 1, 21, 5, 19, 5, 1, 33, 20, 33, 20, 8, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
664 4, 4, 1, 32, 2, 2, 8, 3, 32, 26, 3, 1, 7, 7, 26, 6, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
665 1, 6, 1, 1, 16, 1, 10, 1, 10, 2, 16, 29, 28, 2, 29, 28, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
666 1, 27, 5, 8, 5, 27, 1, 8, 3, 7, 3, 31, 41, 31, 1, 41, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
667 6, 1, 6, 7, 4, 4, 1, 1, 2, 1, 2, 11, 34, 30, 11, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
668 30, 15, 15, 34, 36, 40, 36, 40, 35, 35, 37, 37, 39, 39, 38, 38}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
669 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
670 /* value table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
671 { 1, -1, 0, 2, -2, 0, 3, -3, 1, -1, 4, -4, 5, -5, 1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
672 6, -6, 2, -2, 7, -7, 1, -1, 8, -8, 9, -9, 3, -3, 1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
673 10, -10, 2, -2, 11, -11, 1, -1, 12, 4, -12, -4, 1, -1, 13, -13, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
674 1, -1, 14, -14, 2, 5, 15, -2, -5, -15, -3, 3, 16, -16, 17, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
675 -1, -17, 6, 18, -6, -18, 2, -2, 19, -19, 1, -1, 20, -20, 4, -4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
676 7, -7, 21, -21, 1, -1, 2, 3, -3, 22, -2, -22, 8, 23, -8, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
677 2, -23, -1, 2, -2, -2, 24, 1, -24, -1, 25, 5, -5, 1, -25, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
678 9, -9, 26, 1, -26, 3, 1, -1, 27, -3, -1, -27, 1, 3, -1, -3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
679 28, -4, 4, 10, -10, -28, 1, -1, 1, -1, 29, 6, -29, -6, 30, -4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
680 3, 3, -3, -30, 1, 4, -1, 31, -3, 1, 11, -11, -1, -31, 32, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
681 -1, 2, -2, 1, 1, -32, 1, 4, -1, -4, 33, -1, 1, 1, -1, 5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
682 5, -5, -33, -1, -12, 12, -5, -7, 1, 1, 7, 34, 4, -4, -1, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
683 -34, -4, 35, 36, -2, -35, -2, -36, 2, 13, 2, -1, 1, -13, 1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
684 37, 1, -5, 6, 5, -1, 38, -6, -8, 5, 8, -1, 1, 1, -37, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
685 5, 39, -5, -5, 6, -6, -38, -39, -14, 40, 14, 2, 1, 1, -2, -40, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
686 -1, -2, 2, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, -1, 1, -1} |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
687 },{ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
688 /* MapTab1 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
689 0, /* eob_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
690 38, /* esc_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
691 /* run table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
692 {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 8, 6, 8, 7, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
693 7, 9, 9, 10, 10, 11, 11, 1, 12, 1, 12, 13, 13, 16, 14, 16, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
694 14, 15, 15, 17, 17, 18, 0, 18, 19, 20, 21, 19, 22, 21, 20, 22, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
695 25, 24, 2, 25, 24, 23, 23, 2, 26, 28, 26, 28, 29, 27, 29, 27, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
696 33, 33, 1, 32, 1, 3, 32, 30, 36, 3, 36, 30, 31, 31, 35, 34, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
697 37, 41, 34, 35, 37, 4, 41, 4, 49, 8, 8, 49, 40, 38, 5, 38, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
698 40, 39, 5, 39, 42, 43, 42, 7, 57, 6, 43, 44, 6, 50, 7, 44, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
699 57, 48, 50, 48, 45, 45, 46, 47, 51, 46, 47, 58, 1, 51, 58, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
700 52, 59, 53, 9, 52, 55, 55, 59, 53, 56, 54, 56, 54, 9, 64, 64, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
701 60, 63, 60, 63, 61, 62, 61, 62, 2, 10, 2, 10, 11, 1, 11, 13, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
702 12, 1, 12, 13, 16, 16, 8, 8, 14, 3, 3, 15, 14, 15, 4, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
703 1, 17, 17, 5, 1, 7, 7, 5, 6, 1, 2, 2, 6, 22, 1, 25, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
704 21, 22, 8, 24, 1, 21, 25, 24, 8, 18, 18, 23, 9, 20, 23, 33, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
705 29, 33, 20, 1, 19, 1, 29, 36, 9, 36, 19, 41, 28, 57, 32, 3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
706 28, 3, 1, 27, 49, 49, 1, 32, 26, 26, 2, 4, 4, 7, 57, 41, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
707 2, 7, 10, 5, 37, 16, 10, 27, 8, 8, 13, 16, 37, 13, 1, 5}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
708 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
709 /* value table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
710 {0, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
711 -1, 1, -1, 1, -1, 1, -1, 2, 1, -2, -1, 1, -1, 1, 1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
712 -1, 1, -1, 1, -1, 1, 0, -1, 1, 1, 1, -1, 1, -1, -1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
713 1, 1, 2, -1, -1, 1, -1, -2, 1, 1, -1, -1, 1, 1, -1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
714 1, -1, 3, 1, -3, 2, -1, 1, 1, -2, -1, -1, -1, 1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
715 1, 1, -1, -1, -1, 2, -1, -2, 1, 2, -2, -1, 1, 1, 2, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
716 -1, 1, -2, -1, 1, 1, -1, 2, 1, 2, -1, 1, -2, -1, -2, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
717 -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, 4, -1, -1, -4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
718 1, 1, 1, 2, -1, -1, 1, -1, -1, 1, -1, -1, 1, -2, 1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
719 1, 1, -1, -1, 1, 1, -1, -1, 3, 2, -3, -2, 2, 5, -2, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
720 2, -5, -2, -2, -2, 2, -3, 3, 2, 3, -3, 2, -2, -2, 3, -3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
721 6, 2, -2, 3, -6, 3, -3, -3, 3, 7, -4, 4, -3, 2, -7, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
722 2, -2, -4, 2, 8, -2, -2, -2, 4, 2, -2, 2, 3, 2, -2, -2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
723 2, 2, -2, -8, -2, 9, -2, 2, -3, -2, 2, -2, 2, 2, 2, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
724 -2, -4, 10, 2, 2, -2, -9, -2, 2, -2, 5, 4, -4, 4, -2, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
725 -5, -4, -3, 4, 2, -3, 3, -2, -5, 5, 3, 3, -2, -3, -10, -4} |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
726 },{ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
727 /* MapTab2 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
728 2, /* eob_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
729 11, /* esc_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
730 /* run table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
731 {1, 1, 0, 2, 2, 1, 1, 3, 3, 4, 4, 0, 1, 1, 5, 5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
732 2, 2, 6, 6, 7, 7, 1, 8, 1, 8, 3, 3, 9, 9, 1, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
733 2, 1, 4, 10, 4, 10, 11, 11, 1, 5, 12, 12, 1, 5, 13, 13, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
734 3, 3, 6, 6, 2, 2, 14, 14, 16, 16, 15, 7, 15, 8, 8, 7, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
735 1, 1, 17, 17, 4, 4, 1, 1, 18, 18, 2, 2, 5, 5, 25, 3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
736 9, 3, 25, 9, 19, 24, 19, 24, 1, 21, 20, 1, 21, 22, 20, 22, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
737 23, 23, 8, 6, 33, 6, 8, 33, 7, 7, 26, 26, 1, 32, 1, 32, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
738 28, 4, 28, 10, 29, 27, 27, 10, 41, 4, 29, 2, 2, 41, 36, 31, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
739 49, 31, 34, 30, 34, 36, 30, 35, 1, 49, 11, 5, 35, 11, 1, 3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
740 3, 5, 37, 37, 8, 40, 8, 40, 12, 12, 42, 42, 1, 38, 16, 57, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
741 1, 6, 16, 39, 38, 6, 7, 7, 13, 13, 39, 43, 2, 43, 57, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
742 50, 9, 44, 9, 50, 4, 15, 48, 44, 4, 1, 15, 48, 14, 14, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
743 45, 45, 8, 3, 5, 8, 51, 47, 3, 46, 46, 47, 5, 51, 1, 17, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
744 17, 58, 1, 58, 2, 52, 52, 2, 53, 7, 59, 6, 6, 56, 53, 55, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
745 7, 55, 1, 54, 59, 56, 54, 10, 1, 10, 4, 60, 1, 60, 8, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
746 8, 64, 64, 61, 1, 63, 3, 63, 62, 61, 5, 11, 5, 3, 11, 62}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
747 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
748 /* value table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
749 { 1, -1, 0, 1, -1, 2, -2, 1, -1, 1, -1, 0, 3, -3, 1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
750 2, -2, 1, -1, 1, -1, 4, 1, -4, -1, 2, -2, 1, -1, 5, 3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
751 -3, -5, 2, 1, -2, -1, 1, -1, 6, 2, 1, -1, -6, -2, 1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
752 3, -3, 2, -2, 4, -4, 1, -1, 1, -1, 1, 2, -1, 2, -2, -2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
753 7, -7, 1, -1, 3, -3, 8, -8, 1, -1, 5, -5, 3, -3, 1, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
754 2, -4, -1, -2, 1, 1, -1, -1, 9, 1, 1, -9, -1, 1, -1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
755 1, -1, 3, -3, 1, 3, -3, -1, 3, -3, 1, -1, 10, 1, -10, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
756 1, 4, -1, 2, 1, -1, 1, -2, 1, -4, -1, 6, -6, -1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
757 1, -1, 1, 1, -1, -1, -1, 1, 11, -1, -2, 4, -1, 2, -11, 5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
758 -5, -4, -1, 1, 4, 1, -4, -1, -2, 2, 1, -1, 12, 1, -2, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
759 -12, 4, 2, 1, -1, -4, 4, -4, 2, -2, -1, 1, 7, -1, -1, -7, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
760 -1, -3, 1, 3, 1, 5, 2, 1, -1, -5, 13, -2, -1, 2, -2, -13, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
761 1, -1, 5, 6, 5, -5, 1, 1, -6, 1, -1, -1, -5, -1, 14, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
762 -2, 1, -14, -1, 8, 1, -1, -8, 1, 5, 1, 5, -5, 1, -1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
763 -5, -1, 15, 1, -1, -1, -1, 3, -15, -3, 6, 1, 16, -1, 6, -6, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
764 -6, 1, -1, 1, -16, 1, 7, -1, 1, -1, -6, -3, 6, -7, 3, -1} |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
765 },{ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
766 /* MapTab3 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
767 0, /* eob_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
768 35, /* esc_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
769 /* run table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
770 {0, 1, 1, 2, 2, 3, 3, 4, 4, 1, 1, 5, 5, 6, 6, 7, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
771 7, 8, 8, 9, 9, 2, 2, 10, 10, 1, 1, 11, 11, 12, 12, 3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
772 3, 13, 13, 0, 14, 14, 16, 15, 16, 15, 4, 4, 17, 1, 17, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
773 5, 5, 18, 18, 2, 2, 6, 6, 8, 19, 7, 8, 7, 19, 20, 20, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
774 21, 21, 22, 24, 22, 24, 23, 23, 1, 1, 25, 25, 3, 3, 26, 26, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
775 9, 9, 27, 27, 28, 28, 33, 29, 4, 33, 29, 1, 4, 1, 32, 32, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
776 2, 2, 31, 10, 30, 10, 30, 31, 34, 34, 5, 5, 36, 36, 35, 41, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
777 35, 11, 41, 11, 37, 1, 8, 8, 37, 6, 1, 6, 40, 7, 7, 40, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
778 12, 38, 12, 39, 39, 38, 49, 13, 49, 13, 3, 42, 3, 42, 16, 16, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
779 43, 43, 14, 14, 1, 1, 44, 15, 44, 15, 2, 2, 57, 48, 50, 48, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
780 57, 50, 4, 45, 45, 4, 46, 47, 47, 46, 1, 51, 1, 17, 17, 51, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
781 8, 9, 9, 5, 58, 8, 58, 5, 52, 52, 55, 56, 53, 56, 55, 59, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
782 59, 53, 54, 1, 6, 54, 7, 7, 6, 1, 2, 3, 2, 3, 64, 60, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
783 60, 10, 10, 64, 61, 62, 61, 63, 1, 63, 62, 1, 18, 24, 18, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
784 25, 4, 8, 21, 21, 1, 24, 22, 25, 22, 8, 11, 19, 11, 23, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
785 20, 23, 19, 20, 5, 12, 5, 1, 16, 2, 12, 13, 2, 13, 1, 16}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
786 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
787 /* value table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
788 { 0, 1, -1, 1, -1, 1, -1, 1, -1, 2, -2, 1, -1, 1, -1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
789 -1, 1, -1, 1, -1, 2, -2, 1, -1, 3, -3, 1, -1, 1, -1, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
790 -2, 1, -1, 0, 1, -1, 1, 1, -1, -1, 2, -2, 1, 4, -1, -4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
791 2, -2, 1, -1, -3, 3, 2, -2, 2, 1, 2, -2, -2, -1, 1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
792 1, -1, 1, 1, -1, -1, 1, -1, 5, -5, 1, -1, 3, -3, 1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
793 2, -2, 1, -1, 1, -1, 1, 1, 3, -1, -1, 6, -3, -6, -1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
794 4, -4, 1, 2, 1, -2, -1, -1, 1, -1, 3, -3, 1, -1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
795 -1, 2, -1, -2, 1, 7, -3, 3, -1, 3, -7, -3, 1, -3, 3, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
796 2, 1, -2, 1, -1, -1, 1, 2, -1, -2, -4, -1, 4, 1, 2, -2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
797 1, -1, -2, 2, 8, -8, -1, 2, 1, -2, -5, 5, 1, -1, -1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
798 -1, 1, 4, -1, 1, -4, -1, -1, 1, 1, 9, 1, -9, 2, -2, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
799 -4, 3, -3, -4, -1, 4, 1, 4, 1, -1, 1, -1, 1, 1, -1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
800 -1, -1, -1, 10, 4, 1, 4, -4, -4, -10, 6, 5, -6, -5, 1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
801 1, 3, -3, -1, 1, -1, -1, -1, 11, 1, 1, -11, -2, -2, 2, 5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
802 -2, -5, -5, 2, -2, 12, 2, -2, 2, 2, 5, -3, -2, 3, -2, -12, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
803 -2, 2, 2, 2, -5, 3, 5, 13, -3, 7, -3, -3, -7, 3, -13, 3} |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
804 },{ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
805 /* MapTab4 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
806 0, /* eob_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
807 34, /* esc_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
808 /* run table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
809 {0, 1, 1, 1, 2, 2, 1, 3, 3, 1, 1, 1, 4, 4, 1, 5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
810 2, 1, 5, 2, 1, 1, 6, 6, 1, 1, 1, 1, 1, 7, 3, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
811 2, 3, 0, 1, 2, 7, 1, 1, 1, 8, 1, 1, 8, 1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
812 9, 1, 9, 1, 2, 1, 1, 2, 1, 1, 10, 4, 1, 10, 1, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
813 1, 1, 1, 1, 1, 3, 1, 1, 1, 3, 2, 1, 5, 1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
814 2, 5, 1, 11, 1, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
815 2, 1, 6, 1, 6, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 12, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
816 3, 1, 12, 1, 1, 1, 2, 1, 1, 3, 1, 1, 1, 1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
817 4, 1, 1, 1, 2, 1, 1, 4, 1, 1, 1, 1, 1, 1, 2, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
818 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 1, 1, 5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
819 1, 1, 1, 1, 1, 7, 1, 7, 1, 1, 2, 3, 1, 1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
820 5, 1, 1, 1, 1, 1, 1, 2, 13, 1, 1, 1, 1, 1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
821 1, 1, 1, 1, 1, 1, 1, 1, 13, 2, 1, 1, 4, 1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
822 3, 1, 6, 1, 1, 1, 14, 1, 1, 1, 1, 1, 14, 6, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
823 1, 1, 15, 2, 4, 1, 2, 3, 15, 1, 1, 1, 8, 1, 1, 8, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
824 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
825 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
826 /* value table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
827 { 0, 1, -1, 2, 1, -1, -2, 1, -1, 3, -3, 4, 1, -1, -4, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
828 2, 5, -1, -2, -5, 6, 1, -1, -6, 7, -7, 8, -8, 1, 2, 9, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
829 3, -2, 0, -9, -3, -1, 10, -10, 11, 1, -11, 12, -1, -12, 13, -13, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
830 1, 14, -1, -14, 4, 15, -15, -4, 16, -16, 1, 2, 17, -1, -17, -2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
831 18, -18, 19, -19, 20, 3, -20, 21, -21, -3, 5, 22, 2, -22, -23, 23, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
832 -5, -2, 24, 1, -24, -1, 25, -25, 26, -26, -27, 27, 28, 29, -28, -29, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
833 6, 30, 2, -31, -2, -30, 31, -6, -32, 32, 33, -33, 34, -35, -34, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
834 4, -36, -1, 35, 37, 36, 7, -37, 38, -4, -38, 39, 41, 40, -40, -39, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
835 3, 42, -43, -41, -7, -42, 43, -3, 44, -44, 45, -45, 46, 47, 8, -47, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
836 -48, -46, 50, -50, 48, 49, 51, -49, 52, -52, 5, -51, -8, -53, 53, 3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
837 -56, 56, 55, 54, -54, 2, 60, -2, -55, 58, 9, -5, 59, 57, -57, -63, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
838 -3, -58, -60, -61, 61, -59, -62, -9, 1, 64, 62, 69, -64, 63, 65, -67, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
839 -68, 66, -65, 68, -66, -69, 67, -70, -1, 10, 71, -71, 4, 73, 72, 70, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
840 6, -76, -3, 74, -78, -74, 1, 78, 80, -72, -75, 76, -1, 3, -73, 79, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
841 75, 77, 1, 11, -4, -79, -10, -6, -1, -77, -83, -80, 2, 81, -84, -2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
842 83, -81, 82, -82, 84, -87, -86, 85, -11, -85, 86, -89, 87, -88, 88, 89} |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
843 },{ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
844 /* MapTab5 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
845 2, /* eob_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
846 33, /* esc_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
847 /* run table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
848 {1, 1, 0, 2, 1, 2, 1, 3, 3, 1, 1, 4, 4, 2, 2, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
849 1, 5, 5, 6, 1, 6, 1, 7, 7, 3, 3, 2, 8, 2, 8, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
850 1, 0, 9, 9, 1, 1, 10, 4, 10, 4, 11, 11, 2, 1, 2, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
851 12, 12, 3, 3, 1, 1, 13, 5, 5, 13, 14, 1, 1, 14, 2, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
852 6, 6, 15, 1, 1, 15, 16, 4, 7, 16, 4, 7, 1, 1, 3, 3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
853 8, 8, 2, 2, 1, 1, 17, 17, 1, 1, 18, 18, 5, 5, 2, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
854 1, 1, 9, 19, 9, 19, 20, 3, 3, 20, 1, 10, 21, 1, 10, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
855 4, 21, 22, 6, 6, 22, 1, 1, 23, 24, 2, 2, 23, 24, 11, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
856 1, 11, 7, 25, 7, 1, 1, 25, 8, 8, 3, 26, 3, 1, 12, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
857 2, 26, 1, 12, 5, 5, 27, 4, 1, 4, 1, 27, 28, 1, 28, 13, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
858 1, 13, 2, 29, 2, 1, 32, 6, 1, 30, 14, 29, 14, 6, 3, 31, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
859 3, 1, 30, 1, 32, 31, 33, 9, 33, 1, 1, 7, 9, 7, 2, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
860 1, 1, 4, 36, 34, 4, 5, 10, 10, 5, 34, 1, 1, 35, 8, 8, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
861 36, 3, 35, 1, 15, 3, 2, 1, 16, 15, 16, 2, 37, 1, 37, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
862 1, 1, 6, 6, 38, 1, 38, 11, 1, 39, 39, 40, 11, 2, 41, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
863 40, 1, 2, 4, 1, 1, 1, 41, 3, 1, 3, 1, 5, 7, 5, 7}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
864 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
865 /* value table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
866 { 1, -1, 0, 1, 2, -1, -2, 1, -1, 3, -3, 1, -1, 2, -2, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
867 -4, 1, -1, 1, 5, -1, -5, 1, -1, 2, -2, 3, 1, -3, -1, 6, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
868 -6, 0, 1, -1, 7, -7, 1, 2, -1, -2, 1, -1, 4, 8, -4, -8, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
869 1, -1, 3, -3, 9, -9, 1, 2, -2, -1, 1, 10, -10, -1, 5, -5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
870 2, -2, 1, 11, -11, -1, 1, 3, 2, -1, -3, -2, 12, -12, 4, -4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
871 2, -2, -6, 6, 13, -13, 1, -1, 14, -14, 1, -1, 3, -3, 7, -7, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
872 15, -15, 2, 1, -2, -1, 1, 5, -5, -1, -16, 2, 1, 16, -2, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
873 -4, -1, 1, 3, -3, -1, 17, -17, 1, 1, -8, 8, -1, -1, 2, 18, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
874 -18, -2, 3, 1, -3, 19, -19, -1, 3, -3, 6, 1, -6, 20, 2, 9, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
875 -9, -1, -20, -2, 4, -4, 1, -5, 21, 5, -21, -1, 1, -22, -1, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
876 22, -2, 10, 1, -10, 23, 1, 4, -23, 1, 2, -1, -2, -4, -7, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
877 7, -24, -1, 24, -1, -1, 1, 3, -1, -25, 25, 4, -3, -4, 11, -11, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
878 26, -26, 6, 1, 1, -6, -5, -3, 3, 5, -1, -27, 27, 1, 4, -4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
879 -1, -8, -1, 28, 2, 8, -12, -28, -2, -2, 2, 12, -1, 29, 1, -29, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
880 30, -30, 5, -5, 1, -31, -1, 3, 31, -1, 1, 1, -3, -13, 1, -7, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
881 -1, -32, 13, 7, 32, 33, -33, -1, -9, -34, 9, 34, -6, 5, 6, -5} |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
882 },{ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
883 /* MapTab6 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
884 2, /* eob_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
885 13, /* esc_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
886 /* run table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
887 {1, 1, 0, 1, 1, 2, 2, 1, 1, 3, 3, 1, 1, 0, 2, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
888 4, 1, 4, 1, 1, 1, 5, 5, 1, 1, 6, 6, 2, 2, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
889 3, 3, 7, 7, 1, 1, 8, 8, 1, 1, 2, 2, 1, 9, 1, 9, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
890 4, 4, 10, 1, 1, 10, 1, 1, 11, 11, 3, 3, 1, 2, 1, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
891 1, 1, 12, 12, 5, 5, 1, 1, 13, 1, 1, 13, 2, 2, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
892 6, 6, 1, 1, 4, 14, 4, 14, 3, 1, 3, 1, 1, 1, 15, 7, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
893 15, 2, 2, 7, 1, 1, 1, 8, 1, 8, 16, 16, 1, 1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
894 2, 1, 1, 2, 1, 1, 3, 5, 5, 3, 4, 1, 1, 4, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
895 17, 17, 9, 1, 1, 9, 2, 2, 1, 1, 10, 10, 1, 6, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
896 6, 18, 1, 1, 18, 1, 1, 1, 2, 2, 3, 1, 3, 1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
897 4, 1, 19, 1, 19, 7, 1, 1, 20, 1, 4, 20, 1, 7, 11, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
898 1, 11, 21, 2, 8, 5, 1, 8, 1, 5, 21, 1, 1, 1, 22, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
899 1, 22, 1, 1, 3, 3, 1, 23, 2, 12, 24, 1, 1, 2, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
900 12, 23, 1, 1, 24, 1, 1, 1, 4, 1, 1, 1, 2, 1, 6, 6, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
901 4, 2, 1, 1, 1, 1, 1, 1, 1, 14, 13, 3, 1, 25, 9, 25, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
902 14, 1, 9, 3, 13, 1, 1, 1, 1, 1, 10, 1, 1, 2, 10, 2}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
903 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
904 /* value table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
905 {-20, -1, 0, 2, -2, 1, -1, 3, -3, 1, -1, 4, -4, 0, 2, -2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
906 1, 5, -1, -5, 6, -6, 1, -1, 7, -7, 1, -1, 3, -3, 8, -8, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
907 2, -2, 1, -1, 9, -9, 1, -1, 10, -10, 4, -4, 11, 1, -11, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
908 2, -2, 1, 12, -12, -1, 13, -13, 1, -1, 3, -3, 14, 5, -14, -5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
909 -15, 15, -1, 1, 2, -2, 16, -16, 1, 17, -17, -1, 6, -6, 18, -18, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
910 2, -2, -19, 19, -3, 1, 3, -1, 4, 20, -4, 1, -21, 21, 1, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
911 -1, -7, 7, -2, 22, -22, 23, 2, -23, -2, 1, -1, -24, 24, -25, 25, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
912 -8, -26, 26, 8, -27, 27, 5, 3, -3, -5, -4, 28, -28, 4, 29, -29, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
913 1, -1, -2, -30, 30, 2, 9, -9, -31, 31, 2, -2, -32, 3, 32, -33, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
914 -3, 1, 33, -34, -1, 34, -35, 35, -10, 10, -6, 36, 6, -36, 37, -37, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
915 -5, 38, 1, -38, -1, 3, 39, -39, -1, 40, 5, 1, -40, -3, 2, -11, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
916 -41, -2, 1, 11, -3, -4, 41, 3, 42, 4, -1, -43, -42, 43, 1, -44, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
917 45, -1, 44, -45, -7, 7, -46, 1, -12, 2, 1, -47, 46, 12, 47, 48, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
918 -2, -1, -48, 49, -1, -50, -49, 50, -6, -51, 51, 52, -13, 53, -4, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
919 6, 13, -53, -52, -54, 55, 54, -55, -56, -2, 2, -8, 56, 1, -3, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
920 2, 58, 3, 8, -2, 57, -58, -60, -59, -57, -3, 60, 59, -14, 3, 14} |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
921 },{ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
922 /* MapTab7 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
923 2, /* eob_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
924 38, /* esc_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
925 /* run table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
926 {1, 1, 0, 2, 2, 1, 1, 3, 3, 4, 4, 5, 5, 1, 1, 6, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
927 6, 2, 2, 7, 7, 8, 8, 1, 1, 3, 3, 9, 9, 10, 10, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
928 1, 2, 2, 4, 4, 11, 0, 11, 12, 12, 13, 13, 1, 1, 5, 5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
929 14, 14, 15, 16, 15, 16, 3, 3, 1, 6, 1, 6, 2, 2, 7, 7, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
930 8, 8, 17, 17, 1, 1, 4, 4, 18, 18, 2, 2, 1, 19, 1, 20, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
931 19, 20, 21, 21, 3, 3, 22, 22, 5, 5, 24, 1, 1, 23, 9, 23, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
932 24, 9, 2, 2, 10, 1, 1, 10, 6, 6, 25, 4, 4, 25, 7, 7, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
933 26, 8, 1, 8, 3, 1, 26, 3, 11, 11, 27, 27, 2, 28, 1, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
934 28, 1, 12, 12, 5, 5, 29, 13, 13, 29, 32, 1, 1, 33, 31, 30, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
935 32, 4, 30, 33, 4, 31, 3, 14, 1, 1, 3, 34, 34, 2, 2, 14, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
936 6, 6, 35, 36, 35, 36, 1, 15, 1, 16, 16, 15, 7, 9, 7, 9, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
937 37, 8, 8, 37, 1, 1, 39, 2, 38, 39, 2, 40, 5, 38, 40, 5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
938 3, 3, 4, 4, 10, 10, 1, 1, 1, 1, 41, 2, 41, 2, 6, 6, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
939 1, 1, 11, 42, 11, 43, 3, 42, 3, 17, 4, 43, 1, 17, 7, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
940 8, 44, 4, 7, 44, 5, 8, 2, 5, 1, 2, 48, 45, 1, 12, 45, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
941 12, 48, 13, 13, 1, 9, 9, 46, 1, 46, 47, 47, 49, 18, 18, 49}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
942 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
943 /* value table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
944 { 1, -1, 0, 1, -1, 2, -2, 1, -1, 1, -1, 1, -1, 3, -3, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
945 -1, -2, 2, 1, -1, 1, -1, 4, -4, -2, 2, 1, -1, 1, -1, 5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
946 -5, -3, 3, 2, -2, 1, 0, -1, 1, -1, 1, -1, 6, -6, 2, -2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
947 1, -1, 1, 1, -1, -1, -3, 3, 7, 2, -7, -2, -4, 4, 2, -2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
948 2, -2, 1, -1, 8, -8, 3, -3, 1, -1, -5, 5, 9, 1, -9, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
949 -1, -1, 1, -1, -4, 4, 1, -1, 3, -3, 1, -10, 10, 1, 2, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
950 -1, -2, 6, -6, 2, 11, -11, -2, 3, -3, 1, -4, 4, -1, 3, -3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
951 1, 3, 12, -3, -5, -12, -1, 5, 2, -2, 1, -1, -7, 1, 13, 7, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
952 -1, -13, 2, -2, 4, -4, 1, 2, -2, -1, 1, 14, -14, 1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
953 -1, -5, -1, -1, 5, -1, -6, 2, -15, 15, 6, 1, -1, -8, 8, -2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
954 -4, 4, 1, 1, -1, -1, 16, 2, -16, -2, 2, -2, 4, 3, -4, -3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
955 -1, -4, 4, 1, -17, 17, -1, -9, 1, 1, 9, 1, -5, -1, -1, 5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
956 -7, 7, 6, -6, 3, -3, 18, -18, 19, -19, 1, -10, -1, 10, -5, 5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
957 20, -20, -3, 1, 3, 1, 8, -1, -8, 2, 7, -1, -21, -2, 5, 21, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
958 5, -1, -7, -5, 1, -6, -5, -11, 6, 22, 11, 1, 1, -22, -3, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
959 3, -1, 3, -3, -23, 4, -4, 1, 23, -1, 1, -1, 1, -2, 2, -1} |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
960 },{ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
961 /* MapTab8 */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
962 4, /* eob_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
963 11, /* esc_sym */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
964 /* run table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
965 {1, 1, 1, 1, 0, 2, 2, 1, 1, 3, 3, 0, 1, 1, 2, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
966 4, 4, 1, 1, 5, 5, 1, 1, 2, 2, 3, 3, 6, 6, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
967 7, 7, 8, 1, 8, 2, 2, 1, 4, 4, 1, 3, 1, 3, 9, 9, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
968 2, 2, 1, 5, 1, 5, 10, 10, 1, 1, 11, 11, 3, 6, 3, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
969 4, 6, 2, 2, 1, 12, 1, 12, 7, 13, 7, 13, 1, 1, 8, 8, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
970 2, 2, 14, 14, 16, 15, 16, 5, 5, 1, 3, 15, 1, 3, 4, 4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
971 1, 1, 17, 17, 2, 2, 6, 6, 1, 18, 1, 18, 22, 21, 22, 21, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
972 25, 24, 25, 19, 9, 20, 9, 23, 19, 24, 20, 3, 23, 7, 3, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
973 1, 7, 28, 26, 29, 5, 28, 26, 5, 8, 29, 4, 8, 27, 2, 2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
974 4, 27, 1, 1, 10, 36, 10, 33, 33, 36, 30, 1, 32, 32, 1, 30, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
975 6, 31, 31, 35, 3, 6, 11, 11, 3, 2, 35, 2, 34, 1, 34, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
976 37, 37, 12, 7, 12, 5, 41, 5, 4, 7, 1, 8, 13, 4, 1, 41, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
977 13, 38, 8, 38, 9, 1, 40, 40, 9, 1, 39, 2, 2, 49, 39, 42, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
978 3, 3, 14, 16, 49, 14, 16, 42, 43, 43, 6, 6, 15, 1, 1, 15, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
979 44, 44, 1, 1, 50, 48, 4, 5, 4, 7, 5, 2, 10, 10, 48, 7, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
980 50, 45, 2, 1, 45, 8, 8, 1, 46, 46, 3, 47, 47, 3, 1, 1}, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
981 |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
982 /* value table */ |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
983 { 1, -1, 2, -2, 0, 1, -1, 3, -3, 1, -1, 0, 4, -4, 2, -2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
984 1, -1, 5, -5, 1, -1, 6, -6, 3, -3, 2, -2, 1, -1, 7, -7, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
985 1, -1, 1, 8, -1, 4, -4, -8, 2, -2, 9, 3, -9, -3, 1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
986 5, -5, 10, 2, -10, -2, 1, -1, 11, -11, 1, -1, -4, 2, 4, 3, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
987 -3, -2, 6, -6, 12, 1, -12, -1, 2, 1, -2, -1, 13, -13, 2, -2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
988 7, -7, 1, -1, 1, 1, -1, 3, -3, 14, 5, -1, -14, -5, 4, -4, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
989 15, -15, 1, -1, 8, -8, -3, 3, 16, 1, -16, -1, 1, 1, -1, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
990 1, 1, -1, 1, 2, 1, -2, 1, -1, -1, -1, 6, -1, 3, -6, 17, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
991 -17, -3, 1, 1, 1, 4, -1, -1, -4, 3, -1, 5, -3, -1, -9, 9, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
992 -5, 1, 18, -18, 2, 1, -2, 1, -1, -1, 1, 19, -1, 1, -19, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
993 4, 1, -1, 1, 7, -4, -2, 2, -7, 10, -1, -10, 1, 20, -1, -20, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
994 1, -1, 2, 4, -2, 5, 1, -5, 6, -4, 21, 4, 2, -6, -21, -1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
995 -2, 1, -4, -1, -3, 22, -1, 1, 3, -22, -1, 11, -11, 1, 1, 1, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
996 8, -8, 2, 2, -1, -2, -2, -1, 1, -1, -5, 5, 2, 23, -23, -2, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
997 1, -1, 24, -24, -1, -1, 7, 6, -7, 5, -6, 12, -3, 3, 1, -5, |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
998 1, 1, -12, 25, -1, -5, 5, -25, -1, 1, 9, 1, -1, -9, 26, -26} |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
999 } |
3b79a8709f43
Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff
changeset
|
1000 }; |