Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(221)

Side by Side Diff: celt/rate.h

Issue 107243004: Updating Opus to release 1.1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/opus
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « celt/quant_bands.c ('k') | celt/rate.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (c) 2007-2008 CSIRO 1 /* Copyright (c) 2007-2008 CSIRO
2 Copyright (c) 2007-2009 Xiph.Org Foundation 2 Copyright (c) 2007-2009 Xiph.Org Foundation
3 Written by Jean-Marc Valin */ 3 Written by Jean-Marc Valin */
4 /* 4 /*
5 Redistribution and use in source and binary forms, with or without 5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions 6 modification, are permitted provided that the following conditions
7 are met: 7 are met:
8 8
9 - Redistributions of source code must retain the above copyright 9 - Redistributions of source code must retain the above copyright
10 notice, this list of conditions and the following disclaimer. 10 notice, this list of conditions and the following disclaimer.
(...skipping 27 matching lines...) Expand all
38 38
39 #define FINE_OFFSET 21 39 #define FINE_OFFSET 21
40 #define QTHETA_OFFSET 4 40 #define QTHETA_OFFSET 4
41 #define QTHETA_OFFSET_TWOPHASE 16 41 #define QTHETA_OFFSET_TWOPHASE 16
42 42
43 #include "cwrs.h" 43 #include "cwrs.h"
44 #include "modes.h" 44 #include "modes.h"
45 45
46 void compute_pulse_cache(CELTMode *m, int LM); 46 void compute_pulse_cache(CELTMode *m, int LM);
47 47
48 static inline int get_pulses(int i) 48 static OPUS_INLINE int get_pulses(int i)
49 { 49 {
50 return i<8 ? i : (8 + (i&7)) << ((i>>3)-1); 50 return i<8 ? i : (8 + (i&7)) << ((i>>3)-1);
51 } 51 }
52 52
53 static inline int bits2pulses(const CELTMode *m, int band, int LM, int bits) 53 static OPUS_INLINE int bits2pulses(const CELTMode *m, int band, int LM, int bits )
54 { 54 {
55 int i; 55 int i;
56 int lo, hi; 56 int lo, hi;
57 const unsigned char *cache; 57 const unsigned char *cache;
58 58
59 LM++; 59 LM++;
60 cache = m->cache.bits + m->cache.index[LM*m->nbEBands+band]; 60 cache = m->cache.bits + m->cache.index[LM*m->nbEBands+band];
61 61
62 lo = 0; 62 lo = 0;
63 hi = cache[0]; 63 hi = cache[0];
64 bits--; 64 bits--;
65 for (i=0;i<LOG_MAX_PSEUDO;i++) 65 for (i=0;i<LOG_MAX_PSEUDO;i++)
66 { 66 {
67 int mid = (lo+hi+1)>>1; 67 int mid = (lo+hi+1)>>1;
68 /* OPT: Make sure this is implemented with a conditional move */ 68 /* OPT: Make sure this is implemented with a conditional move */
69 if ((int)cache[mid] >= bits) 69 if ((int)cache[mid] >= bits)
70 hi = mid; 70 hi = mid;
71 else 71 else
72 lo = mid; 72 lo = mid;
73 } 73 }
74 if (bits- (lo == 0 ? -1 : (int)cache[lo]) <= (int)cache[hi]-bits) 74 if (bits- (lo == 0 ? -1 : (int)cache[lo]) <= (int)cache[hi]-bits)
75 return lo; 75 return lo;
76 else 76 else
77 return hi; 77 return hi;
78 } 78 }
79 79
80 static inline int pulses2bits(const CELTMode *m, int band, int LM, int pulses) 80 static OPUS_INLINE int pulses2bits(const CELTMode *m, int band, int LM, int puls es)
81 { 81 {
82 const unsigned char *cache; 82 const unsigned char *cache;
83 83
84 LM++; 84 LM++;
85 cache = m->cache.bits + m->cache.index[LM*m->nbEBands+band]; 85 cache = m->cache.bits + m->cache.index[LM*m->nbEBands+band];
86 return pulses == 0 ? 0 : cache[pulses]+1; 86 return pulses == 0 ? 0 : cache[pulses]+1;
87 } 87 }
88 88
89 /** Compute the pulse allocation, i.e. how many pulses will go in each 89 /** Compute the pulse allocation, i.e. how many pulses will go in each
90 * band. 90 * band.
91 @param m mode 91 @param m mode
92 @param offsets Requested increase or decrease in the number of bits for 92 @param offsets Requested increase or decrease in the number of bits for
93 each band 93 each band
94 @param total Number of bands 94 @param total Number of bands
95 @param pulses Number of pulses per band (returned) 95 @param pulses Number of pulses per band (returned)
96 @return Total number of bits allocated 96 @return Total number of bits allocated
97 */ 97 */
98 int compute_allocation(const CELTMode *m, int start, int end, const int *offsets , const int *cap, int alloc_trim, int *intensity, int *dual_stero, 98 int compute_allocation(const CELTMode *m, int start, int end, const int *offsets , const int *cap, int alloc_trim, int *intensity, int *dual_stero,
99 opus_int32 total, opus_int32 *balance, int *pulses, int *ebits, int *fine_ priority, int C, int LM, ec_ctx *ec, int encode, int prev, int signalBandwidth); 99 opus_int32 total, opus_int32 *balance, int *pulses, int *ebits, int *fine_ priority, int C, int LM, ec_ctx *ec, int encode, int prev, int signalBandwidth);
100 100
101 #endif 101 #endif
OLDNEW
« no previous file with comments | « celt/quant_bands.c ('k') | celt/rate.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698