annotate ivi_common.c @ 12530:63edd10ad4bc libavcodec tip

Try to fix crashes introduced by r25218 r25218 made assumptions about the existence of past reference frames that weren't necessarily true.
author darkshikari
date Tue, 28 Sep 2010 09:06:22 +0000
parents fdafbcef52f5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 /**
11644
7dd2a45249a9 Remove explicit filename from Doxygen @file commands.
diego
parents: 11402
diff changeset
24 * @file
11054
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 /**
12024
fdafbcef52f5 Fix grammar errors in documentation
mru
parents: 11864
diff changeset
43 * Reverse "nbits" bits of the value "val" and return the result
11054
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
4a6bf3fbf367 Declare indeo VLC table storage with correct type
mru
parents: 11246
diff changeset
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);
11853
1547c744b8d4 Prepare Indeo4 (step 1): upscale indeo5 base tables by 2 and convert those into uint16_t.
maxim
parents: 11799
diff changeset
341 const uint16_t *base_tab;
1547c744b8d4 Prepare Indeo4 (step 1): upscale indeo5 base tables by 2 and convert those into uint16_t.
maxim
parents: 11799
diff changeset
342 const uint8_t *scale_tab;
11054
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
343
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
344 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
345
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
346 blk_size = band->blk_size;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
347 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
348 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
349 num_coeffs = blk_size * blk_size;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
350 if (blk_size == 8) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
351 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
352 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
353 } else {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
354 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
355 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
356 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
357
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
358 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
359 is_intra = !mb->type;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
360 cbp = mb->cbp;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
361 buf_offs = mb->buf_offs;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
362
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
363 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
364
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
365 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
366 scale_tab = is_intra ? band->intra_scale : band->inter_scale;
11864
7204cb7dd601 Quant changes only once per MB so move the corresponding scale factor assignment
maxim
parents: 11853
diff changeset
367 if (scale_tab)
7204cb7dd601 Quant changes only once per MB so move the corresponding scale factor assignment
maxim
parents: 11853
diff changeset
368 quant = scale_tab[quant];
11054
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
369
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
370 if (!is_intra) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
371 mv_x = mb->mv_x;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
372 mv_y = mb->mv_y;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
373 if (!band->is_halfpel) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
374 mc_type = 0; /* we have only fullpel vectors */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
375 } else {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
376 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
377 mv_x >>= 1;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
378 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
379 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
380 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
381
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
382 for (blk = 0; blk < num_blocks; blk++) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
383 /* 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
384 if (blk & 1) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
385 buf_offs += blk_size;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
386 } else if (blk == 2) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
387 buf_offs -= blk_size;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
388 buf_offs += blk_size * band->pitch;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
389 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
390
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
391 if (cbp & 1) { /* block coded ? */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
392 scan_pos = -1;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
393 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
394 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
395
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
396 while (scan_pos <= num_coeffs) {
11309
d617766bf19b Encapsulate VLC information needed for decoding blocks and macroblocks in
kostya
parents: 11308
diff changeset
397 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
398 if (sym == rvmap->eob_sym)
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
399 break; /* End of block */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
400
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
401 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
402 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
403 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
404 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
405 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
406 } else {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
407 run = rvmap->runtab[sym];
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
408 val = rvmap->valtab[sym];
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
409 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
410
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
411 /* de-zigzag and dequantize */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
412 scan_pos += run;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
413 if (scan_pos >= num_coeffs)
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
414 break;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
415 pos = band->scan[scan_pos];
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 if (IVI_DEBUG && !val)
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
418 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
419
11864
7204cb7dd601 Quant changes only once per MB so move the corresponding scale factor assignment
maxim
parents: 11853
diff changeset
420 q = (base_tab[pos] * quant) >> 9;
11054
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
421 if (q > 1)
11799
25ce7aff1e1d Make dequantization equation use less registers on some CPUs.
maxim
parents: 11778
diff changeset
422 val = val * q + FFSIGN(val) * (((q ^ 1) - 1) >> 1);
11054
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
423 trvec[pos] = val;
11384
ba57caf45845 When tracking non-zero coefficients during Indeo 5 decoding, make sure
kostya
parents: 11309
diff changeset
424 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
425 }// while
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 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
428 return -1; /* corrupt block data */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
429
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
430 /* undoing DC coeff prediction for intra-blocks */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
431 if (is_intra && band->is_2d_trans) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
432 prev_dc += trvec[0];
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
433 trvec[0] = prev_dc;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
434 col_flags[0] |= !!prev_dc;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
435 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
436
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
437 /* apply inverse transform */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
438 band->inv_transform(trvec, band->buf + buf_offs,
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
439 band->pitch, col_flags);
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
440
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
441 /* apply motion compensation */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
442 if (!is_intra)
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
443 mc_with_delta_func(band->buf + buf_offs,
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
444 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
445 band->pitch, mc_type);
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
446 } else {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
447 /* block not coded */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
448 /* for intra blocks apply the dc slant transform */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
449 /* for inter - perform the motion compensation without delta */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
450 if (is_intra && band->dc_transform) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
451 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
452 band->pitch, blk_size);
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
453 } else
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
454 mc_no_delta_func(band->buf + buf_offs,
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
455 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
456 band->pitch, mc_type);
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
457 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
458
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
459 cbp >>= 1;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
460 }// for blk
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
461 }// for mbn
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
462
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
463 align_get_bits(gb);
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 return 0;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
466 }
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 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
469 IVITile *tile, int32_t mv_scale)
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
470 {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
471 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
472 int offs, mb_offset, row_offset;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
473 IVIMbInfo *mb, *ref_mb;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
474 const int16_t *src;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
475 int16_t *dst;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
476 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
477 int mc_type);
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
478
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
479 offs = tile->ypos * band->pitch + tile->xpos;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
480 mb = tile->mbs;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
481 ref_mb = tile->ref_mbs;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
482 row_offset = band->mb_size * band->pitch;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
483 need_mc = 0; /* reset the mc tracking flag */
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 (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
486 mb_offset = offs;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
487
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
488 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
489 mb->xpos = x;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
490 mb->ypos = y;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
491 mb->buf_offs = mb_offset;
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 mb->type = 1; /* set the macroblocks type = INTER */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
494 mb->cbp = 0; /* all blocks are empty */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
495
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
496 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
497 mb->q_delta = band->glob_quant;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
498 mb->mv_x = 0;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
499 mb->mv_y = 0;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
500 }
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_qdelta && ref_mb)
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
503 mb->q_delta = ref_mb->q_delta;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
504
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
505 if (band->inherit_mv) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
506 /* motion vector inheritance */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
507 if (mv_scale) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
508 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
509 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
510 } else {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
511 mb->mv_x = ref_mb->mv_x;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
512 mb->mv_y = ref_mb->mv_y;
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 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
515 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
516
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
517 mb++;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
518 if (ref_mb)
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
519 ref_mb++;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
520 mb_offset += band->mb_size;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
521 } // for x
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
522 offs += row_offset;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
523 } // for y
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
524
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
525 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
526 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
527 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
528 : ff_ivi_mc_4x4_no_delta;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
529
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
530 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
531 mv_x = mb->mv_x;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
532 mv_y = mb->mv_y;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
533 if (!band->is_halfpel) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
534 mc_type = 0; /* we have only fullpel vectors */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
535 } else {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
536 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
537 mv_x >>= 1;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
538 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
539 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
540
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
541 for (blk = 0; blk < num_blocks; blk++) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
542 /* 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
543 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
544 mc_no_delta_func(band->buf + offs,
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
545 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
546 band->pitch, mc_type);
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
547 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
548 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
549 } else {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
550 /* 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
551 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
552 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
553 for (y = 0; y < tile->height; y++) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
554 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
555 src += band->pitch;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
556 dst += band->pitch;
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 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
560
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 #if IVI_DEBUG
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
563 uint16_t ivi_calc_band_checksum (IVIBandDesc *band)
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 int x, y;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
566 int16_t *src, checksum;
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 src = band->buf;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
569 checksum = 0;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
570
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
571 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
572 for (x = 0; x < band->width; x++)
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
573 checksum += src[x];
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 return checksum;
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
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
578 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
579 {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
580 int x, y, result;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
581 uint8_t t1, t2;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
582 int16_t *src;
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 src = band->buf;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
585 result = 0;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
586
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
587 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
588 for (x = 0; x < band->width; x++) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
589 t1 = av_clip(src[x] + 128, 0, 255);
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
590 t2 = ref[x];
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
591 if (t1 != t2) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
592 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
593 y / band->blk_size, x / band->blk_size);
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
594 result = -1;
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 ref += pitch;
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
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
600 return result;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
601 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
602 #endif
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
603
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
604 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
605 {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
606 int x, y;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
607 const int16_t *src = plane->bands[0].buf;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
608 uint32_t pitch = plane->bands[0].pitch;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
609
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
610 for (y = 0; y < plane->height; y++) {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
611 for (x = 0; x < plane->width; x++)
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
612 dst[x] = av_clip_uint8(src[x] + 128);
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
613 src += pitch;
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
614 dst += dst_pitch;
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
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
618
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
619 /**
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
620 * 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
621 * 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
622 * 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
623 * startup from these descriptors.
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
624 */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
625 const IVIHuffDesc ff_ivi_mb_huff_desc[8] = {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
626 {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
627 {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
628 {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
629 {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
630 {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
631 {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
632 {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
633 {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
634 };
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
635
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
636 const IVIHuffDesc ff_ivi_blk_huff_desc[8] = {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
637 {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
638 {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
639 {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
640 {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
641 {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
642 {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
643 {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
644 {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
645 };
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
646
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 /**
11772
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
649 * Scan patterns shared between indeo4 and indeo5
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
650 */
11778
31dae9841fe1 Add the forgotten ff_ prefix to the shareable scan patterns.
maxim
parents: 11772
diff changeset
651 const uint8_t ff_ivi_vertical_scan_8x8[64] = {
11772
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
652 0, 8, 16, 24, 32, 40, 48, 56,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
653 1, 9, 17, 25, 33, 41, 49, 57,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
654 2, 10, 18, 26, 34, 42, 50, 58,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
655 3, 11, 19, 27, 35, 43, 51, 59,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
656 4, 12, 20, 28, 36, 44, 52, 60,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
657 5, 13, 21, 29, 37, 45, 53, 61,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
658 6, 14, 22, 30, 38, 46, 54, 62,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
659 7, 15, 23, 31, 39, 47, 55, 63
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
660 };
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
661
11778
31dae9841fe1 Add the forgotten ff_ prefix to the shareable scan patterns.
maxim
parents: 11772
diff changeset
662 const uint8_t ff_ivi_horizontal_scan_8x8[64] = {
11772
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
663 0, 1, 2, 3, 4, 5, 6, 7,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
664 8, 9, 10, 11, 12, 13, 14, 15,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
665 16, 17, 18, 19, 20, 21, 22, 23,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
666 24, 25, 26, 27, 28, 29, 30, 31,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
667 32, 33, 34, 35, 36, 37, 38, 39,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
668 40, 41, 42, 43, 44, 45, 46, 47,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
669 48, 49, 50, 51, 52, 53, 54, 55,
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
670 56, 57, 58, 59, 60, 61, 62, 63
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
671 };
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
672
11778
31dae9841fe1 Add the forgotten ff_ prefix to the shareable scan patterns.
maxim
parents: 11772
diff changeset
673 const uint8_t ff_ivi_direct_scan_4x4[16] = {
11772
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
674 0, 1, 4, 8, 5, 2, 3, 6, 9, 12, 13, 10, 7, 11, 14, 15
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
675 };
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
676
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
677
4a178e0051d6 moves indeo5 scan patterns into ivi_common.c
maxim
parents: 11644
diff changeset
678 /**
11054
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
679 * Run-value (RLE) tables.
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
680 */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
681 const RVMapDesc ff_ivi_rvmap_tabs[9] = {
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
682 { /* MapTab0 */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
683 5, /* eob_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
684 2, /* esc_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
685 /* run table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
686 {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
687 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
688 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
689 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
690 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
691 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
692 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
693 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
694 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
695 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
696 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
697 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
698 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
699 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
700 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
701 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
702
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
703 /* value table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
704 { 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
705 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
706 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
707 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
708 -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
709 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
710 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
711 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
712 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
713 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
714 -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
715 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
716 -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
717 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
718 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
719 -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
720 },{
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
721 /* MapTab1 */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
722 0, /* eob_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
723 38, /* esc_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
724 /* run table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
725 {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
726 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
727 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
728 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
729 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
730 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
731 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
732 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
733 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
734 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
735 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
736 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
737 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
738 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
739 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
740 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
741
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
742 /* value table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
743 {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
744 -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
745 -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
746 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
747 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
748 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
749 -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
750 -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
751 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
752 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
753 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
754 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
755 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
756 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
757 -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
758 -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
759 },{
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
760 /* MapTab2 */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
761 2, /* eob_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
762 11, /* esc_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
763 /* run table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
764 {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
765 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
766 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
767 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
768 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
769 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
770 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
771 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
772 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
773 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
774 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
775 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
776 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
777 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
778 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
779 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
780
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
781 /* value table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
782 { 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
783 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
784 -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
785 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
786 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
787 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
788 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
789 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
790 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
791 -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
792 -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
793 -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
794 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
795 -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
796 -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
797 -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
798 },{
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
799 /* MapTab3 */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
800 0, /* eob_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
801 35, /* esc_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
802 /* run table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
803 {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
804 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
805 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
806 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
807 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
808 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
809 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
810 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
811 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
812 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
813 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
814 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
815 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
816 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
817 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
818 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
819
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
820 /* value table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
821 { 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
822 -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
823 -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
824 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
825 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
826 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
827 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
828 -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
829 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
830 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
831 -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
832 -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
833 -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
834 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
835 -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
836 -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
837 },{
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
838 /* MapTab4 */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
839 0, /* eob_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
840 34, /* esc_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
841 /* run table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
842 {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
843 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
844 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
845 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
846 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
847 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
848 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
849 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
850 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
851 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
852 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
853 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
854 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
855 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
856 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
857 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
858
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
859 /* value table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
860 { 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
861 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
862 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
863 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
864 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
865 -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
866 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
867 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
868 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
869 -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
870 -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
871 -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
872 -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
873 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
874 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
875 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
876 },{
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
877 /* MapTab5 */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
878 2, /* eob_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
879 33, /* esc_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
880 /* run table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
881 {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
882 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
883 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
884 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
885 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
886 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
887 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
888 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
889 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
890 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
891 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
892 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
893 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
894 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
895 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
896 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
897
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
898 /* value table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
899 { 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
900 -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
901 -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
902 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
903 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
904 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
905 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
906 -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
907 -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
908 -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
909 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
910 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
911 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
912 -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
913 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
914 -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
915 },{
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
916 /* MapTab6 */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
917 2, /* eob_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
918 13, /* esc_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
919 /* run table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
920 {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
921 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
922 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
923 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
924 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
925 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
926 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
927 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
928 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
929 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
930 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
931 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
932 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
933 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
934 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
935 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
936
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
937 /* value table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
938 {-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
939 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
940 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
941 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
942 -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
943 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
944 -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
945 -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
946 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
947 -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
948 -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
949 -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
950 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
951 -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
952 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
953 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
954 },{
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
955 /* MapTab7 */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
956 2, /* eob_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
957 38, /* esc_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
958 /* run table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
959 {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
960 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
961 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
962 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
963 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
964 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
965 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
966 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
967 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
968 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
969 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
970 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
971 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
972 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
973 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
974 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
975
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
976 /* value table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
977 { 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
978 -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
979 -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
980 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
981 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
982 -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
983 -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
984 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
985 -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
986 -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
987 -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
988 -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
989 -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
990 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
991 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
992 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
993 },{
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
994 /* MapTab8 */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
995 4, /* eob_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
996 11, /* esc_sym */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
997 /* run table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
998 {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
999 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
1000 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
1001 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
1002 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
1003 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
1004 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
1005 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
1006 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
1007 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
1008 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
1009 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
1010 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
1011 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
1012 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
1013 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
1014
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
1015 /* value table */
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
1016 { 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
1017 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
1018 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
1019 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
1020 -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
1021 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
1022 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
1023 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
1024 -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
1025 -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
1026 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
1027 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
1028 -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
1029 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
1030 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
1031 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
1032 }
3b79a8709f43 Indeo Video Interactive 4 and 5 common code and DSP functions.
kostya
parents:
diff changeset
1033 };