The tables for 32-bit platforms |
![]() ![]() ![]() Next: The tables for 16-bit Up: The tables and potential Previous: The tables and potential The tables for 32-bit platformsIf USE_INACCURATE_IDCT is not defined on a 32-bit platform, the following fixed-point constants are used to implement the table of constants that are absorbed into the dequantization table:
524288, 475072, 262144, 166823, 262144, 111468, 262144, 94498, This table is simply the table with the real values presented before, but scaled with 131072 = 217. In order to estimate the possibility of an overflow, we only have to observe the values in the first row (or column) since these are the highest values and thus are most likely to lead to an overflow. In the first row, only the values at odd indices and the value at index 0 are of any interest of us, because the algorithm makes no usage of all other values (therefore they are skipped during absorbing them into the dequantization constants). The worst case during the first pass happens in the addition of the scaled value of If USE_INACCURATE_IDCT is defined on a 32-bit platform, the following fixed-point constants are used to implement the table of constants that are absorbed into the dequantization table:
131072, 118768, 65536, 41706, 65536, 27867, 65536, 23624, Again, this table is simply the table with the real values presented before, but this time scaled with 131072 = 215. By choosing a table that is less accurate by two digits than the one before, we can omit the right shift over 2 digits after the first pass, resulting in a minimum of operations. This variant of the algorithm really requires only additions. |
Last Updated on Sunday, 28 April 2002 16:19 |