Revision 3fc548df

View differences:

libavcodec/Makefile
609 609

  
610 610
OBJS-$(CONFIG_MLIB)                    += mlib/dsputil_mlib.o           \
611 611

  
612
# inverse.o contains the ff_inverse table definition, which is used by
613
# the FASTDIV macro (from libavutil); since referencing the external
614
# table has a negative effect on performance, copy it in libavcodec as
615
# well.
616
OBJS-$(!CONFIG_SMALL)                  += inverse.o
617

  
612 618
-include $(SUBDIR)$(ARCH)/Makefile
613 619

  
614 620
SKIPHEADERS                             = %_tablegen.h
libavcodec/dsputil.c
97 97
    38, 46, 54, 62, 39, 47, 55, 63,
98 98
};
99 99

  
100
/* a*inverse[b]>>32 == a/b for all 0<=a<=16909558 && 2<=b<=256
101
 * for a>16909558, is an overestimate by less than 1 part in 1<<24 */
102
const uint32_t ff_inverse[257]={
103
         0, 4294967295U,2147483648U,1431655766, 1073741824,  858993460,  715827883,  613566757,
104
 536870912,  477218589,  429496730,  390451573,  357913942,  330382100,  306783379,  286331154,
105
 268435456,  252645136,  238609295,  226050911,  214748365,  204522253,  195225787,  186737709,
106
 178956971,  171798692,  165191050,  159072863,  153391690,  148102321,  143165577,  138547333,
107
 134217728,  130150525,  126322568,  122713352,  119304648,  116080198,  113025456,  110127367,
108
 107374183,  104755300,  102261127,   99882961,   97612894,   95443718,   93368855,   91382283,
109
  89478486,   87652394,   85899346,   84215046,   82595525,   81037119,   79536432,   78090315,
110
  76695845,   75350304,   74051161,   72796056,   71582789,   70409300,   69273667,   68174085,
111
  67108864,   66076420,   65075263,   64103990,   63161284,   62245903,   61356676,   60492498,
112
  59652324,   58835169,   58040099,   57266231,   56512728,   55778797,   55063684,   54366675,
113
  53687092,   53024288,   52377650,   51746594,   51130564,   50529028,   49941481,   49367441,
114
  48806447,   48258060,   47721859,   47197443,   46684428,   46182445,   45691142,   45210183,
115
  44739243,   44278014,   43826197,   43383509,   42949673,   42524429,   42107523,   41698712,
116
  41297763,   40904451,   40518560,   40139882,   39768216,   39403370,   39045158,   38693400,
117
  38347923,   38008561,   37675152,   37347542,   37025581,   36709123,   36398028,   36092163,
118
  35791395,   35495598,   35204650,   34918434,   34636834,   34359739,   34087043,   33818641,
119
  33554432,   33294321,   33038210,   32786010,   32537632,   32292988,   32051995,   31814573,
120
  31580642,   31350127,   31122952,   30899046,   30678338,   30460761,   30246249,   30034737,
121
  29826162,   29620465,   29417585,   29217465,   29020050,   28825284,   28633116,   28443493,
122
  28256364,   28071682,   27889399,   27709467,   27531842,   27356480,   27183338,   27012373,
123
  26843546,   26676816,   26512144,   26349493,   26188825,   26030105,   25873297,   25718368,
124
  25565282,   25414008,   25264514,   25116768,   24970741,   24826401,   24683721,   24542671,
125
  24403224,   24265352,   24129030,   23994231,   23860930,   23729102,   23598722,   23469767,
126
  23342214,   23216040,   23091223,   22967740,   22845571,   22724695,   22605092,   22486740,
127
  22369622,   22253717,   22139007,   22025474,   21913099,   21801865,   21691755,   21582751,
128
  21474837,   21367997,   21262215,   21157475,   21053762,   20951060,   20849356,   20748635,
129
  20648882,   20550083,   20452226,   20355296,   20259280,   20164166,   20069941,   19976593,
130
  19884108,   19792477,   19701685,   19611723,   19522579,   19434242,   19346700,   19259944,
131
  19173962,   19088744,   19004281,   18920561,   18837576,   18755316,   18673771,   18592933,
132
  18512791,   18433337,   18354562,   18276457,   18199014,   18122225,   18046082,   17970575,
133
  17895698,   17821442,   17747799,   17674763,   17602325,   17530479,   17459217,   17388532,
134
  17318417,   17248865,   17179870,   17111424,   17043522,   16976156,   16909321,   16843010,
135
  16777216
136
};
137

  
138 100
/* Input permutation for the simple_idct_mmx */
139 101
static const uint8_t simple_mmx_permutation[64]={
140 102
        0x00, 0x08, 0x04, 0x09, 0x01, 0x0C, 0x05, 0x0D,
libavcodec/inverse.c
1
#include "libavutil/inverse.c"
libavutil/Makefile
39 39
       eval.o                                                           \
40 40
       fifo.o                                                           \
41 41
       intfloat_readwrite.o                                             \
42
       inverse.o                                                        \
42 43
       lfg.o                                                            \
43 44
       lls.o                                                            \
44 45
       log.o                                                            \
libavutil/inverse.c
1
/*
2
 * Inverse table
3
 * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
4
 *
5
 * This file is part of FFmpeg.
6
 *
7
 * FFmpeg is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU Lesser General Public
9
 * License as published by the Free Software Foundation; either
10
 * version 2.1 of the License, or (at your option) any later version.
11
 *
12
 * FFmpeg is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
 * Lesser General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Lesser General Public
18
 * License along with FFmpeg; if not, write to the Free Software
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
 */
21

  
22
#include "libavutil/intmath.h"
23

  
24
/* a*inverse[b]>>32 == a/b for all 0<=a<=16909558 && 2<=b<=256
25
 * for a>16909558, is an overestimate by less than 1 part in 1<<24 */
26
const uint32_t ff_inverse[257]={
27
         0, 4294967295U,2147483648U,1431655766, 1073741824,  858993460,  715827883,  613566757,
28
 536870912,  477218589,  429496730,  390451573,  357913942,  330382100,  306783379,  286331154,
29
 268435456,  252645136,  238609295,  226050911,  214748365,  204522253,  195225787,  186737709,
30
 178956971,  171798692,  165191050,  159072863,  153391690,  148102321,  143165577,  138547333,
31
 134217728,  130150525,  126322568,  122713352,  119304648,  116080198,  113025456,  110127367,
32
 107374183,  104755300,  102261127,   99882961,   97612894,   95443718,   93368855,   91382283,
33
  89478486,   87652394,   85899346,   84215046,   82595525,   81037119,   79536432,   78090315,
34
  76695845,   75350304,   74051161,   72796056,   71582789,   70409300,   69273667,   68174085,
35
  67108864,   66076420,   65075263,   64103990,   63161284,   62245903,   61356676,   60492498,
36
  59652324,   58835169,   58040099,   57266231,   56512728,   55778797,   55063684,   54366675,
37
  53687092,   53024288,   52377650,   51746594,   51130564,   50529028,   49941481,   49367441,
38
  48806447,   48258060,   47721859,   47197443,   46684428,   46182445,   45691142,   45210183,
39
  44739243,   44278014,   43826197,   43383509,   42949673,   42524429,   42107523,   41698712,
40
  41297763,   40904451,   40518560,   40139882,   39768216,   39403370,   39045158,   38693400,
41
  38347923,   38008561,   37675152,   37347542,   37025581,   36709123,   36398028,   36092163,
42
  35791395,   35495598,   35204650,   34918434,   34636834,   34359739,   34087043,   33818641,
43
  33554432,   33294321,   33038210,   32786010,   32537632,   32292988,   32051995,   31814573,
44
  31580642,   31350127,   31122952,   30899046,   30678338,   30460761,   30246249,   30034737,
45
  29826162,   29620465,   29417585,   29217465,   29020050,   28825284,   28633116,   28443493,
46
  28256364,   28071682,   27889399,   27709467,   27531842,   27356480,   27183338,   27012373,
47
  26843546,   26676816,   26512144,   26349493,   26188825,   26030105,   25873297,   25718368,
48
  25565282,   25414008,   25264514,   25116768,   24970741,   24826401,   24683721,   24542671,
49
  24403224,   24265352,   24129030,   23994231,   23860930,   23729102,   23598722,   23469767,
50
  23342214,   23216040,   23091223,   22967740,   22845571,   22724695,   22605092,   22486740,
51
  22369622,   22253717,   22139007,   22025474,   21913099,   21801865,   21691755,   21582751,
52
  21474837,   21367997,   21262215,   21157475,   21053762,   20951060,   20849356,   20748635,
53
  20648882,   20550083,   20452226,   20355296,   20259280,   20164166,   20069941,   19976593,
54
  19884108,   19792477,   19701685,   19611723,   19522579,   19434242,   19346700,   19259944,
55
  19173962,   19088744,   19004281,   18920561,   18837576,   18755316,   18673771,   18592933,
56
  18512791,   18433337,   18354562,   18276457,   18199014,   18122225,   18046082,   17970575,
57
  17895698,   17821442,   17747799,   17674763,   17602325,   17530479,   17459217,   17388532,
58
  17318417,   17248865,   17179870,   17111424,   17043522,   16976156,   16909321,   16843010,
59
  16777216
60
};

Also available in: Unified diff