summaryrefslogtreecommitdiff
path: root/floor1.c
diff options
context:
space:
mode:
authorMonty <xiphmont@xiph.org>2002-10-16 09:07:00 +0000
committerMonty <xiphmont@xiph.org>2002-10-16 09:07:00 +0000
commit53ce9e87fa11300647020ab6dd0a964ce0ff5a19 (patch)
treebab451f9f285a4bd7583a4871af7f34254a0cb25 /floor1.c
parent93e8099a940fa6a34d52f027be9956c947c44ba6 (diff)
downloadtremor-53ce9e87fa11300647020ab6dd0a964ce0ff5a19.tar.gz
Nicolas Pitre's LOW_ACCURACY patch
git-svn-id: https://svn.xiph.org/trunk/Tremor@4012 0101bb08-14d6-0310-b084-bc0e0c8e3800
Diffstat (limited to 'floor1.c')
-rw-r--r--floor1.c138
1 files changed, 71 insertions, 67 deletions
diff --git a/floor1.c b/floor1.c
index 9bf79e4..4fd2cd6 100644
--- a/floor1.c
+++ b/floor1.c
@@ -25,8 +25,6 @@
#include "codebook.h"
#include "misc.h"
-#include <stdio.h>
-
#define floor1_rangedB 140 /* floor 1 fixed at -140dB to 0dB range */
typedef struct {
@@ -216,73 +214,79 @@ static int render_point(int x0,int x1,int y0,int y1,int x){
}
}
+#ifdef _LOW_ACCURACY_
+# define X(n) ((((n)>>8)+1)>>1)
+#else
+# define X(n) (n)
+#endif
+
static const ogg_int32_t FLOOR_fromdB_LOOKUP[256]={
- 0x000000e5, 0x000000f4, 0x00000103, 0x00000114,
- 0x00000126, 0x00000139, 0x0000014e, 0x00000163,
- 0x0000017a, 0x00000193, 0x000001ad, 0x000001c9,
- 0x000001e7, 0x00000206, 0x00000228, 0x0000024c,
- 0x00000272, 0x0000029b, 0x000002c6, 0x000002f4,
- 0x00000326, 0x0000035a, 0x00000392, 0x000003cd,
- 0x0000040c, 0x00000450, 0x00000497, 0x000004e4,
- 0x00000535, 0x0000058c, 0x000005e8, 0x0000064a,
- 0x000006b3, 0x00000722, 0x00000799, 0x00000818,
- 0x0000089e, 0x0000092e, 0x000009c6, 0x00000a69,
- 0x00000b16, 0x00000bcf, 0x00000c93, 0x00000d64,
- 0x00000e43, 0x00000f30, 0x0000102d, 0x0000113a,
- 0x00001258, 0x0000138a, 0x000014cf, 0x00001629,
- 0x0000179a, 0x00001922, 0x00001ac4, 0x00001c82,
- 0x00001e5c, 0x00002055, 0x0000226f, 0x000024ac,
- 0x0000270e, 0x00002997, 0x00002c4b, 0x00002f2c,
- 0x0000323d, 0x00003581, 0x000038fb, 0x00003caf,
- 0x000040a0, 0x000044d3, 0x0000494c, 0x00004e10,
- 0x00005323, 0x0000588a, 0x00005e4b, 0x0000646b,
- 0x00006af2, 0x000071e5, 0x0000794c, 0x0000812e,
- 0x00008993, 0x00009283, 0x00009c09, 0x0000a62d,
- 0x0000b0f9, 0x0000bc79, 0x0000c8b9, 0x0000d5c4,
- 0x0000e3a9, 0x0000f274, 0x00010235, 0x000112fd,
- 0x000124dc, 0x000137e4, 0x00014c29, 0x000161bf,
- 0x000178bc, 0x00019137, 0x0001ab4a, 0x0001c70e,
- 0x0001e4a1, 0x0002041f, 0x000225aa, 0x00024962,
- 0x00026f6d, 0x000297f0, 0x0002c316, 0x0002f109,
- 0x000321f9, 0x00035616, 0x00038d97, 0x0003c8b4,
- 0x000407a7, 0x00044ab2, 0x00049218, 0x0004de23,
- 0x00052f1e, 0x0005855c, 0x0005e135, 0x00064306,
- 0x0006ab33, 0x00071a24, 0x0007904b, 0x00080e20,
- 0x00089422, 0x000922da, 0x0009bad8, 0x000a5cb6,
- 0x000b091a, 0x000bc0b1, 0x000c8436, 0x000d5471,
- 0x000e3233, 0x000f1e5f, 0x001019e4, 0x001125c1,
- 0x00124306, 0x001372d5, 0x0014b663, 0x00160ef7,
- 0x00177df0, 0x001904c1, 0x001aa4f9, 0x001c603d,
- 0x001e384f, 0x00202f0f, 0x0022467a, 0x002480b1,
- 0x0026dff7, 0x002966b3, 0x002c1776, 0x002ef4fc,
- 0x0032022d, 0x00354222, 0x0038b828, 0x003c67c2,
- 0x004054ae, 0x004482e8, 0x0048f6af, 0x004db488,
- 0x0052c142, 0x005821ff, 0x005ddc33, 0x0063f5b0,
- 0x006a74a7, 0x00715faf, 0x0078bdce, 0x0080967f,
- 0x0088f1ba, 0x0091d7f9, 0x009b5247, 0x00a56a41,
- 0x00b02a27, 0x00bb9ce2, 0x00c7ce12, 0x00d4ca17,
- 0x00e29e20, 0x00f15835, 0x0101074b, 0x0111bb4e,
- 0x01238531, 0x01367704, 0x014aa402, 0x016020a7,
- 0x017702c3, 0x018f6190, 0x01a955cb, 0x01c4f9cf,
- 0x01e269a8, 0x0201c33b, 0x0223265a, 0x0246b4ea,
- 0x026c9302, 0x0294e716, 0x02bfda13, 0x02ed9793,
- 0x031e4e09, 0x03522ee4, 0x03896ed0, 0x03c445e2,
- 0x0402efd6, 0x0445ac4b, 0x048cbefc, 0x04d87013,
- 0x05290c67, 0x057ee5ca, 0x05da5364, 0x063bb204,
- 0x06a36485, 0x0711d42b, 0x0787710e, 0x0804b299,
- 0x088a17ef, 0x0918287e, 0x09af747c, 0x0a50957e,
- 0x0afc2f19, 0x0bb2ef7f, 0x0c759034, 0x0d44d6ca,
- 0x0e2195bc, 0x0f0cad0d, 0x10070b62, 0x1111aeea,
- 0x122da66c, 0x135c120f, 0x149e24d9, 0x15f525b1,
- 0x176270e3, 0x18e7794b, 0x1a85c9ae, 0x1c3f06d1,
- 0x1e14f07d, 0x200963d7, 0x221e5ccd, 0x2455f870,
- 0x26b2770b, 0x29363e2b, 0x2be3db5c, 0x2ebe06b6,
- 0x31c7a55b, 0x3503ccd4, 0x3875c5aa, 0x3c210f44,
- 0x4009632b, 0x4432b8cf, 0x48a149bc, 0x4d59959e,
- 0x52606733, 0x57bad899, 0x5d6e593a, 0x6380b298,
- 0x69f80e9a, 0x70dafda8, 0x78307d76, 0x7fffffff,
+ X(0x000000e5), X(0x000000f4), X(0x00000103), X(0x00000114),
+ X(0x00000126), X(0x00000139), X(0x0000014e), X(0x00000163),
+ X(0x0000017a), X(0x00000193), X(0x000001ad), X(0x000001c9),
+ X(0x000001e7), X(0x00000206), X(0x00000228), X(0x0000024c),
+ X(0x00000272), X(0x0000029b), X(0x000002c6), X(0x000002f4),
+ X(0x00000326), X(0x0000035a), X(0x00000392), X(0x000003cd),
+ X(0x0000040c), X(0x00000450), X(0x00000497), X(0x000004e4),
+ X(0x00000535), X(0x0000058c), X(0x000005e8), X(0x0000064a),
+ X(0x000006b3), X(0x00000722), X(0x00000799), X(0x00000818),
+ X(0x0000089e), X(0x0000092e), X(0x000009c6), X(0x00000a69),
+ X(0x00000b16), X(0x00000bcf), X(0x00000c93), X(0x00000d64),
+ X(0x00000e43), X(0x00000f30), X(0x0000102d), X(0x0000113a),
+ X(0x00001258), X(0x0000138a), X(0x000014cf), X(0x00001629),
+ X(0x0000179a), X(0x00001922), X(0x00001ac4), X(0x00001c82),
+ X(0x00001e5c), X(0x00002055), X(0x0000226f), X(0x000024ac),
+ X(0x0000270e), X(0x00002997), X(0x00002c4b), X(0x00002f2c),
+ X(0x0000323d), X(0x00003581), X(0x000038fb), X(0x00003caf),
+ X(0x000040a0), X(0x000044d3), X(0x0000494c), X(0x00004e10),
+ X(0x00005323), X(0x0000588a), X(0x00005e4b), X(0x0000646b),
+ X(0x00006af2), X(0x000071e5), X(0x0000794c), X(0x0000812e),
+ X(0x00008993), X(0x00009283), X(0x00009c09), X(0x0000a62d),
+ X(0x0000b0f9), X(0x0000bc79), X(0x0000c8b9), X(0x0000d5c4),
+ X(0x0000e3a9), X(0x0000f274), X(0x00010235), X(0x000112fd),
+ X(0x000124dc), X(0x000137e4), X(0x00014c29), X(0x000161bf),
+ X(0x000178bc), X(0x00019137), X(0x0001ab4a), X(0x0001c70e),
+ X(0x0001e4a1), X(0x0002041f), X(0x000225aa), X(0x00024962),
+ X(0x00026f6d), X(0x000297f0), X(0x0002c316), X(0x0002f109),
+ X(0x000321f9), X(0x00035616), X(0x00038d97), X(0x0003c8b4),
+ X(0x000407a7), X(0x00044ab2), X(0x00049218), X(0x0004de23),
+ X(0x00052f1e), X(0x0005855c), X(0x0005e135), X(0x00064306),
+ X(0x0006ab33), X(0x00071a24), X(0x0007904b), X(0x00080e20),
+ X(0x00089422), X(0x000922da), X(0x0009bad8), X(0x000a5cb6),
+ X(0x000b091a), X(0x000bc0b1), X(0x000c8436), X(0x000d5471),
+ X(0x000e3233), X(0x000f1e5f), X(0x001019e4), X(0x001125c1),
+ X(0x00124306), X(0x001372d5), X(0x0014b663), X(0x00160ef7),
+ X(0x00177df0), X(0x001904c1), X(0x001aa4f9), X(0x001c603d),
+ X(0x001e384f), X(0x00202f0f), X(0x0022467a), X(0x002480b1),
+ X(0x0026dff7), X(0x002966b3), X(0x002c1776), X(0x002ef4fc),
+ X(0x0032022d), X(0x00354222), X(0x0038b828), X(0x003c67c2),
+ X(0x004054ae), X(0x004482e8), X(0x0048f6af), X(0x004db488),
+ X(0x0052c142), X(0x005821ff), X(0x005ddc33), X(0x0063f5b0),
+ X(0x006a74a7), X(0x00715faf), X(0x0078bdce), X(0x0080967f),
+ X(0x0088f1ba), X(0x0091d7f9), X(0x009b5247), X(0x00a56a41),
+ X(0x00b02a27), X(0x00bb9ce2), X(0x00c7ce12), X(0x00d4ca17),
+ X(0x00e29e20), X(0x00f15835), X(0x0101074b), X(0x0111bb4e),
+ X(0x01238531), X(0x01367704), X(0x014aa402), X(0x016020a7),
+ X(0x017702c3), X(0x018f6190), X(0x01a955cb), X(0x01c4f9cf),
+ X(0x01e269a8), X(0x0201c33b), X(0x0223265a), X(0x0246b4ea),
+ X(0x026c9302), X(0x0294e716), X(0x02bfda13), X(0x02ed9793),
+ X(0x031e4e09), X(0x03522ee4), X(0x03896ed0), X(0x03c445e2),
+ X(0x0402efd6), X(0x0445ac4b), X(0x048cbefc), X(0x04d87013),
+ X(0x05290c67), X(0x057ee5ca), X(0x05da5364), X(0x063bb204),
+ X(0x06a36485), X(0x0711d42b), X(0x0787710e), X(0x0804b299),
+ X(0x088a17ef), X(0x0918287e), X(0x09af747c), X(0x0a50957e),
+ X(0x0afc2f19), X(0x0bb2ef7f), X(0x0c759034), X(0x0d44d6ca),
+ X(0x0e2195bc), X(0x0f0cad0d), X(0x10070b62), X(0x1111aeea),
+ X(0x122da66c), X(0x135c120f), X(0x149e24d9), X(0x15f525b1),
+ X(0x176270e3), X(0x18e7794b), X(0x1a85c9ae), X(0x1c3f06d1),
+ X(0x1e14f07d), X(0x200963d7), X(0x221e5ccd), X(0x2455f870),
+ X(0x26b2770b), X(0x29363e2b), X(0x2be3db5c), X(0x2ebe06b6),
+ X(0x31c7a55b), X(0x3503ccd4), X(0x3875c5aa), X(0x3c210f44),
+ X(0x4009632b), X(0x4432b8cf), X(0x48a149bc), X(0x4d59959e),
+ X(0x52606733), X(0x57bad899), X(0x5d6e593a), X(0x6380b298),
+ X(0x69f80e9a), X(0x70dafda8), X(0x78307d76), X(0x7fffffff),
};
-
+
static void render_line(int x0,int x1,int y0,int y1,ogg_int32_t *d){
int dy=y1-y0;
int adx=x1-x0;