[FFmpeg-soc] [soc]: r2400 - aacenc/aacenc.c
kostya
subversion at mplayerhq.hu
Sat Jun 7 12:30:58 CEST 2008
Author: kostya
Date: Sat Jun 7 12:30:58 2008
New Revision: 2400
Log:
AAC spectrum codebooks information
Modified:
aacenc/aacenc.c
Modified: aacenc/aacenc.c
==============================================================================
--- aacenc/aacenc.c (original)
+++ aacenc/aacenc.c Sat Jun 7 12:30:58 2008
@@ -100,6 +100,37 @@ static const uint8_t *swb_size_1024[] =
//borrowed data ends here
+#define CB_UNSIGNED 0x01
+#define CB_PAIRS 0x02
+#define CB_ESCAPE 0x04
+
+/** Codebook information */
+static const struct {
+ int16_t maxval; ///< maximum possible value
+
+ const uint8_t *bits; ///< codeword lengths
+ const uint16_t *codes; ///< codewords
+
+ uint8_t flags; ///< codebook features
+} aac_cb_info[] = {
+ { 0, NULL , NULL , CB_UNSIGNED }, // zero codebook
+ { 1, bits1 , code1 , 0 },
+ { 1, bits2 , code2 , 0 },
+ { 2, bits3 , code3 , CB_UNSIGNED },
+ { 2, bits4 , code4 , CB_UNSIGNED },
+ { 4, bits5 , code5 , CB_PAIRS },
+ { 4, bits6 , code6 , CB_PAIRS },
+ { 7, bits7 , code7 , CB_PAIRS | CB_UNSIGNED },
+ { 7, bits8 , code8 , CB_PAIRS | CB_UNSIGNED },
+ { 12, bits9 , code9 , CB_PAIRS | CB_UNSIGNED },
+ { 12, bits10, code10, CB_PAIRS | CB_UNSIGNED },
+ { 8191, bits11, code11, CB_PAIRS | CB_UNSIGNED | CB_ESCAPE },
+ { -1, NULL , NULL , 0 }, // reserved
+ { -1, NULL , NULL , 0 }, // perceptual noise substitution
+ { -1, NULL , NULL , 0 }, // intensity out-of-phase
+ { -1, NULL , NULL , 0 }, // intensity in-phase
+};
+
typedef struct {
PutBitContext pb;
MDCTContext mdct;
More information about the FFmpeg-soc
mailing list