From patchwork Sat May 25 02:28:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lynne X-Patchwork-Id: 49231 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:542:0:b0:460:55fa:d5ed with SMTP id 63csp2098018vqf; Fri, 24 May 2024 19:29:15 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUTe/6y5bb9k75paLen1+rSA2ikD8ptPCazbR772/X0KnMAH9OLT8YyAi+uBVNUBnj2oWduYDcM22tcGQltn1SZptClBYhRYeMj0Q== X-Google-Smtp-Source: AGHT+IGF0LftnxTrUO7nBngI2K0D2VzNxsfbZobMMQDmV2dqb7w7SD2RnA2A6lBgtCn7Y+ctkifd X-Received: by 2002:ac2:4d1b:0:b0:51f:9549:9c0d with SMTP id 2adb3069b0e04-5296736bb92mr3023513e87.48.1716604155417; Fri, 24 May 2024 19:29:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1716604155; cv=none; d=google.com; s=arc-20160816; b=pmpRITCyreUY7fj930hkdalzU1wmU/JRbwhm6suW+pOnvHn4P40u7SivnFCcSXnRya Zy4kFu2v80HifWRBSStL1uPtb+AuZmbY43rWvtlW8zGnvFC7QsAbjPIrmBKTTWiT3eO4 EXC1aRZKYRH7gwGLhwKtFOr+ymfaHg+Lj7Gzw/gCcNH+PpAvsZw0mgnMZzp6GCrrn3H4 2M6raQhbcZF3wnxtF+MYNzsyLk5RMKGheLCFUr2dD6WgsRRU7DlNKYyoD2V/YMtQfpD6 9brk1ZjCitxTJ6zZ8mNMPJYFstDKDk/ulaPRy1Fic2Aq++FGUpIwPKhDFpgn7oAfDk5p 5lTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to:from :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:delivered-to; bh=wC1rRk0Y2hSDjXqi9InTVkFOyjvKCoxIsEWNON1VzrU=; fh=nenT92/WZoU6unXd3J6UhGUdod4piddKfVtctNBOh6k=; b=okcLBNr2VKaZmeil5Lo1Hdj/S2OMNi1KlKYjtfo6tDNx2NLYukceVn/f0H/zXqXEzM PsEPnns9olWMOSrI/PazXTEYDxxm5pSFB/76QB7NWK+sgPjWoAWmtBeRTQhrKCsClKfI jgI2SWnabzqGHssegJkpB2phnabY54I8ZbrHE+bQgEdCWTWNUKr3Ehm+7akAhkiMva+Y CHM4NOGUjMNwGYEQ8DmE/wqys/KiPga15xCJHdbF5EzrG2qZZy4mj3ki6CL+yrVLwzga jBp3LcyKZ479hgHHSu7EWamN/YMRxa95wmOcGDfQREAs9qToURYBZt+qloxrcelJLb1m hE7A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 2adb3069b0e04-529712f3e9dsi839029e87.628.2024.05.24.19.29.14; Fri, 24 May 2024 19:29:15 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B8C4468D5DD; Sat, 25 May 2024 05:28:29 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vidala.lynne.ee (vidala.pars.ee [116.203.72.101]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3F5A668D598 for ; Sat, 25 May 2024 05:28:23 +0300 (EEST) To: ffmpeg-devel@ffmpeg.org Date: Sat, 25 May 2024 04:28:00 +0200 Message-ID: <20240525022813.2292001-8-dev@lynne.ee> X-Mailer: git-send-email 2.43.0.381.gb435a96ce8 In-Reply-To: <20240525022813.2292001-1-dev@lynne.ee> References: <20240525022813.2292001-1-dev@lynne.ee> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 07/10] aactab: add tables for the new USAC arithmetic coder X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Lynne via ffmpeg-devel From: Lynne Reply-To: FFmpeg development discussions and patches Cc: Lynne Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: /7XkE15n3JeL --- libavcodec/aactab.c | 376 ++++++++++++++++++++++++++++++++++++++++++++ libavcodec/aactab.h | 6 + 2 files changed, 382 insertions(+) diff --git a/libavcodec/aactab.c b/libavcodec/aactab.c index 8ce5e43974..dfb2dfd98d 100644 --- a/libavcodec/aactab.c +++ b/libavcodec/aactab.c @@ -1193,6 +1193,382 @@ const uint16_t *const ff_aac_codebook_vector_idx[] = { codebook_vector10_idx, }; +const uint16_t ff_aac_ac_msb_cdfs[64][17] = { + { 708, 706, 579, 569, 568, 567, 479, 469, + 297, 138, 97, 91, 72, 52, 38, 34, 0, }, + { 7619, 6917, 6519, 6412, 5514, 5003, 4683, 4563, + 3907, 3297, 3125, 3060, 2904, 2718, 2631, 2590, 0, }, + { 7263, 4888, 4810, 4803, 1889, 415, 335, 327, + 195, 72, 52, 49, 36, 20, 15, 14, 0, }, + { 3626, 2197, 2188, 2187, 582, 57, 47, 46, + 30, 12, 9, 8, 6, 4, 3, 2, 0, }, + { 7806, 5541, 5451, 5441, 2720, 834, 691, 674, + 487, 243, 179, 167, 139, 98, 77, 70, 0, }, + { 6684, 4101, 4058, 4055, 1748, 426, 368, 364, + 322, 257, 235, 232, 228, 222, 217, 215, 0, }, + { 9162, 5964, 5831, 5819, 3269, 866, 658, 638, + 535, 348, 258, 244, 234, 214, 195, 186, 0, }, + { 10638, 8491, 8365, 8351, 4418, 2067, 1859, 1834, + 1190, 601, 495, 478, 356, 217, 174, 164, 0, }, + { 13389, 10514, 10032, 9961, 7166, 3488, 2655, 2524, + 2015, 1140, 760, 672, 585, 426, 325, 283, 0, }, + { 14861, 12788, 12115, 11952, 9987, 6657, 5323, 4984, + 4324, 3001, 2205, 1943, 1764, 1394, 1115, 978, 0, }, + { 12876, 10004, 9661, 9610, 7107, 3435, 2711, 2595, + 2257, 1508, 1059, 952, 893, 753, 609, 538, 0, }, + { 15125, 13591, 13049, 12874, 11192, 8543, 7406, 7023, + 6291, 4922, 4104, 3769, 3465, 2890, 2486, 2275, 0, }, + { 14574, 13106, 12731, 12638, 10453, 7947, 7233, 7037, + 6031, 4618, 4081, 3906, 3465, 2802, 2476, 2349, 0, }, + { 15070, 13179, 12517, 12351, 10742, 7657, 6200, 5825, + 5264, 3998, 3014, 2662, 2510, 2153, 1799, 1564, 0, }, + { 15542, 14466, 14007, 13844, 12489, 10409, 9481, 9132, + 8305, 6940, 6193, 5867, 5458, 4743, 4291, 4047, 0, }, + { 15165, 14384, 14084, 13934, 12911, 11485, 10844, 10513, + 10002, 8993, 8380, 8051, 7711, 7036, 6514, 6233, 0, }, + { 15642, 14279, 13625, 13393, 12348, 9971, 8405, 7858, + 7335, 6119, 4918, 4376, 4185, 3719, 3231, 2860, 0, }, + { 13408, 13407, 11471, 11218, 11217, 11216, 9473, 9216, + 6480, 3689, 2857, 2690, 2256, 1732, 1405, 1302, 0, }, + { 16098, 15584, 15191, 14931, 14514, 13578, 12703, 12103, + 11830, 11172, 10475, 9867, 9695, 9281, 8825, 8389, 0, }, + { 15844, 14873, 14277, 13996, 13230, 11535, 10205, 9543, + 9107, 8086, 7085, 6419, 6214, 5713, 5195, 4731, 0, }, + { 16131, 15720, 15443, 15276, 14848, 13971, 13314, 12910, + 12591, 11874, 11225, 10788, 10573, 10077, 9585, 9209, 0, }, + { 16331, 16330, 12283, 11435, 11434, 11433, 8725, 8049, + 6065, 4138, 3187, 2842, 2529, 2171, 1907, 1745, 0, }, + { 16011, 15292, 14782, 14528, 14008, 12767, 11556, 10921, + 10591, 9759, 8813, 8043, 7855, 7383, 6863, 6282, 0, }, + { 16380, 16379, 15159, 14610, 14609, 14608, 12859, 12111, + 11046, 9536, 8348, 7713, 7216, 6533, 5964, 5546, 0, }, + { 16367, 16333, 16294, 16253, 16222, 16143, 16048, 15947, + 15915, 15832, 15731, 15619, 15589, 15512, 15416, 15310, 0, }, + { 15967, 15319, 14937, 14753, 14010, 12638, 11787, 11360, + 10805, 9706, 8934, 8515, 8166, 7456, 6911, 6575, 0, }, + { 4906, 3005, 2985, 2984, 875, 102, 83, 81, + 47, 17, 12, 11, 8, 5, 4, 3, 0, }, + { 7217, 4346, 4269, 4264, 1924, 428, 340, 332, + 280, 203, 179, 175, 171, 164, 159, 157, 0, }, + { 16010, 15415, 15032, 14805, 14228, 13043, 12168, 11634, + 11265, 10419, 9645, 9110, 8892, 8378, 7850, 7437, 0, }, + { 8573, 5218, 5046, 5032, 2787, 771, 555, 533, + 443, 286, 218, 205, 197, 181, 168, 162, 0, }, + { 11474, 8095, 7822, 7796, 4632, 1443, 1046, 1004, + 748, 351, 218, 194, 167, 121, 93, 83, 0, }, + { 16152, 15764, 15463, 15264, 14925, 14189, 13536, 13070, + 12846, 12314, 11763, 11277, 11131, 10777, 10383, 10011, 0, }, + { 14187, 11654, 11043, 10919, 8498, 4885, 3778, 3552, + 2947, 1835, 1283, 1134, 998, 749, 585, 514, 0, }, + { 14162, 11527, 10759, 10557, 8601, 5417, 4105, 3753, + 3286, 2353, 1708, 1473, 1370, 1148, 959, 840, 0, }, + { 16205, 15902, 15669, 15498, 15213, 14601, 14068, 13674, + 13463, 12970, 12471, 12061, 11916, 11564, 11183, 10841, 0, }, + { 15043, 12972, 12092, 11792, 10265, 7446, 5934, 5379, + 4883, 3825, 3036, 2647, 2507, 2185, 1901, 1699, 0, }, + { 15320, 13694, 12782, 12352, 11191, 8936, 7433, 6671, + 6255, 5366, 4622, 4158, 4020, 3712, 3420, 3198, 0, }, + { 16255, 16020, 15768, 15600, 15416, 14963, 14440, 14006, + 13875, 13534, 13137, 12697, 12602, 12364, 12084, 11781, 0, }, + { 15627, 14503, 13906, 13622, 12557, 10527, 9269, 8661, + 8117, 6933, 5994, 5474, 5222, 4664, 4166, 3841, 0, }, + { 16366, 16365, 14547, 14160, 14159, 14158, 11969, 11473, + 8735, 6147, 4911, 4530, 3865, 3180, 2710, 2473, 0, }, + { 16257, 16038, 15871, 15754, 15536, 15071, 14673, 14390, + 14230, 13842, 13452, 13136, 13021, 12745, 12434, 12154, 0, }, + { 15855, 14971, 14338, 13939, 13239, 11782, 10585, 9805, + 9444, 8623, 7846, 7254, 7079, 6673, 6262, 5923, 0, }, + { 9492, 6318, 6197, 6189, 3004, 652, 489, 477, + 333, 143, 96, 90, 78, 60, 50, 47, 0, }, + { 16313, 16191, 16063, 15968, 15851, 15590, 15303, 15082, + 14968, 14704, 14427, 14177, 14095, 13899, 13674, 13457, 0, }, + { 8485, 5473, 5389, 5383, 2411, 494, 386, 377, + 278, 150, 117, 112, 103, 89, 81, 78, 0, }, + { 10497, 7154, 6959, 6943, 3788, 1004, 734, 709, + 517, 238, 152, 138, 120, 90, 72, 66, 0, }, + { 16317, 16226, 16127, 16040, 15955, 15762, 15547, 15345, + 15277, 15111, 14922, 14723, 14671, 14546, 14396, 14239, 0, }, + { 16382, 16381, 15858, 15540, 15539, 15538, 14704, 14168, + 13768, 13092, 12452, 11925, 11683, 11268, 10841, 10460, 0, }, + { 5974, 3798, 3758, 3755, 1275, 205, 166, 162, + 95, 35, 26, 24, 18, 11, 8, 7, 0, }, + { 3532, 2258, 2246, 2244, 731, 135, 118, 115, + 87, 45, 36, 34, 29, 21, 17, 16, 0, }, + { 7466, 4882, 4821, 4811, 2476, 886, 788, 771, + 688, 531, 469, 457, 437, 400, 369, 361, 0, }, + { 9580, 5772, 5291, 5216, 3444, 1496, 1025, 928, + 806, 578, 433, 384, 366, 331, 296, 273, 0, }, + { 10692, 7730, 7543, 7521, 4679, 1746, 1391, 1346, + 1128, 692, 495, 458, 424, 353, 291, 268, 0, }, + { 11040, 7132, 6549, 6452, 4377, 1875, 1253, 1130, + 958, 631, 431, 370, 346, 296, 253, 227, 0, }, + { 12687, 9332, 8701, 8585, 6266, 3093, 2182, 2004, + 1683, 1072, 712, 608, 559, 458, 373, 323, 0, }, + { 13429, 9853, 8860, 8584, 6806, 4039, 2862, 2478, + 2239, 1764, 1409, 1224, 1178, 1077, 979, 903, 0, }, + { 14685, 12163, 11061, 10668, 9101, 6345, 4871, 4263, + 3908, 3200, 2668, 2368, 2285, 2106, 1942, 1819, 0, }, + { 13295, 11302, 10999, 10945, 7947, 5036, 4490, 4385, + 3391, 2185, 1836, 1757, 1424, 998, 833, 785, 0, }, + { 4992, 2993, 2972, 2970, 1269, 575, 552, 549, + 530, 505, 497, 495, 493, 489, 486, 485, 0, }, + { 15419, 13862, 13104, 12819, 11429, 8753, 7220, 6651, + 6020, 4667, 3663, 3220, 2995, 2511, 2107, 1871, 0, }, + { 12468, 9263, 8912, 8873, 5758, 2193, 1625, 1556, + 1187, 589, 371, 330, 283, 200, 149, 131, 0, }, + { 15870, 15076, 14615, 14369, 13586, 12034, 10990, 10423, + 9953, 8908, 8031, 7488, 7233, 6648, 6101, 5712, 0, }, + { 1693, 978, 976, 975, 194, 18, 16, 15, + 11, 7, 6, 5, 4, 3, 2, 1, 0, }, + { 7992, 5218, 5147, 5143, 2152, 366, 282, 276, + 173, 59, 38, 35, 27, 16, 11, 10, 0, } +}; + +const uint16_t ff_aac_ac_lsb_cdfs[3][4] = { + { 12571, 10569, 3696, 0 }, + { 12661, 5700, 3751, 0 }, + { 10827, 6884, 2929, 0 } +}; + +const uint8_t ff_aac_ac_lookup_m[742] = { + 0x01, 0x34, 0x0D, 0x13, 0x12, 0x25, 0x00, 0x3A, 0x05, 0x00, 0x21, 0x13, 0x1F, 0x1A, 0x1D, 0x36, + 0x24, 0x2B, 0x1B, 0x33, 0x37, 0x29, 0x1D, 0x33, 0x37, 0x33, 0x37, 0x33, 0x37, 0x33, 0x2C, 0x00, + 0x21, 0x13, 0x25, 0x2A, 0x00, 0x21, 0x24, 0x12, 0x2C, 0x1E, 0x37, 0x24, 0x1F, 0x35, 0x37, 0x24, + 0x35, 0x37, 0x35, 0x37, 0x38, 0x2D, 0x21, 0x29, 0x1E, 0x21, 0x13, 0x2D, 0x36, 0x38, 0x29, 0x36, + 0x37, 0x24, 0x36, 0x38, 0x37, 0x38, 0x00, 0x20, 0x23, 0x20, 0x23, 0x36, 0x38, 0x24, 0x3B, 0x24, + 0x26, 0x29, 0x1F, 0x30, 0x2D, 0x0D, 0x12, 0x3F, 0x2D, 0x21, 0x1C, 0x2A, 0x00, 0x21, 0x12, 0x1E, + 0x36, 0x38, 0x36, 0x37, 0x3F, 0x1E, 0x0D, 0x1F, 0x2A, 0x1E, 0x21, 0x24, 0x12, 0x2A, 0x3C, 0x21, + 0x24, 0x1F, 0x3C, 0x21, 0x29, 0x36, 0x38, 0x36, 0x37, 0x38, 0x21, 0x1E, 0x00, 0x3B, 0x25, 0x1E, + 0x20, 0x10, 0x1F, 0x3C, 0x20, 0x23, 0x29, 0x08, 0x23, 0x12, 0x08, 0x23, 0x21, 0x38, 0x00, 0x20, + 0x13, 0x20, 0x3B, 0x1C, 0x20, 0x3B, 0x29, 0x20, 0x23, 0x24, 0x21, 0x24, 0x21, 0x24, 0x3B, 0x13, + 0x23, 0x26, 0x23, 0x13, 0x21, 0x24, 0x26, 0x29, 0x12, 0x22, 0x2B, 0x02, 0x1E, 0x0D, 0x1F, 0x2D, + 0x00, 0x0D, 0x12, 0x00, 0x3C, 0x21, 0x29, 0x3C, 0x21, 0x2A, 0x3C, 0x3B, 0x22, 0x1E, 0x20, 0x10, + 0x1F, 0x3C, 0x0D, 0x29, 0x3C, 0x21, 0x24, 0x08, 0x23, 0x20, 0x38, 0x39, 0x3C, 0x20, 0x13, 0x3C, + 0x00, 0x0D, 0x13, 0x1F, 0x3C, 0x09, 0x26, 0x1F, 0x08, 0x09, 0x26, 0x12, 0x08, 0x23, 0x29, 0x20, + 0x23, 0x21, 0x24, 0x20, 0x13, 0x20, 0x3B, 0x16, 0x20, 0x3B, 0x29, 0x20, 0x3B, 0x29, 0x20, 0x3B, + 0x13, 0x21, 0x24, 0x29, 0x0B, 0x13, 0x09, 0x3B, 0x13, 0x09, 0x3B, 0x13, 0x21, 0x3B, 0x13, 0x0D, + 0x26, 0x29, 0x26, 0x29, 0x3D, 0x12, 0x22, 0x28, 0x2E, 0x04, 0x08, 0x13, 0x3C, 0x3B, 0x3C, 0x20, + 0x10, 0x3C, 0x21, 0x07, 0x08, 0x10, 0x00, 0x08, 0x0D, 0x29, 0x08, 0x0D, 0x29, 0x08, 0x09, 0x13, + 0x20, 0x23, 0x39, 0x08, 0x09, 0x13, 0x08, 0x09, 0x16, 0x08, 0x09, 0x10, 0x12, 0x20, 0x3B, 0x3D, + 0x09, 0x26, 0x20, 0x3B, 0x24, 0x39, 0x09, 0x26, 0x20, 0x0D, 0x13, 0x00, 0x09, 0x13, 0x20, 0x0D, + 0x26, 0x12, 0x20, 0x3B, 0x13, 0x21, 0x26, 0x0B, 0x12, 0x09, 0x3B, 0x16, 0x09, 0x3B, 0x3D, 0x09, + 0x26, 0x0D, 0x13, 0x26, 0x3D, 0x1C, 0x12, 0x1F, 0x28, 0x2E, 0x07, 0x0B, 0x08, 0x09, 0x00, 0x39, + 0x0B, 0x08, 0x26, 0x08, 0x09, 0x13, 0x20, 0x0B, 0x39, 0x10, 0x39, 0x0D, 0x13, 0x20, 0x10, 0x12, + 0x09, 0x13, 0x20, 0x3B, 0x13, 0x09, 0x26, 0x0B, 0x09, 0x3B, 0x1C, 0x09, 0x3B, 0x13, 0x20, 0x3B, + 0x13, 0x09, 0x26, 0x0B, 0x16, 0x0D, 0x13, 0x09, 0x13, 0x09, 0x13, 0x26, 0x3D, 0x1C, 0x1F, 0x28, + 0x2E, 0x07, 0x10, 0x39, 0x0B, 0x39, 0x39, 0x13, 0x39, 0x0B, 0x39, 0x0B, 0x39, 0x26, 0x39, 0x10, + 0x20, 0x3B, 0x16, 0x20, 0x10, 0x09, 0x26, 0x0B, 0x13, 0x09, 0x13, 0x26, 0x1C, 0x0B, 0x3D, 0x1C, + 0x1F, 0x28, 0x2B, 0x07, 0x0C, 0x39, 0x0B, 0x39, 0x0B, 0x0C, 0x0B, 0x26, 0x0B, 0x26, 0x3D, 0x0D, + 0x1C, 0x14, 0x28, 0x2B, 0x39, 0x0B, 0x0C, 0x0E, 0x3D, 0x1C, 0x0D, 0x12, 0x22, 0x2B, 0x07, 0x0C, + 0x0E, 0x3D, 0x1C, 0x10, 0x1F, 0x2B, 0x0C, 0x0E, 0x19, 0x14, 0x10, 0x1F, 0x28, 0x0C, 0x0E, 0x19, + 0x14, 0x26, 0x22, 0x2B, 0x0C, 0x0E, 0x19, 0x14, 0x26, 0x28, 0x0E, 0x19, 0x14, 0x26, 0x28, 0x0E, + 0x19, 0x14, 0x28, 0x0E, 0x19, 0x14, 0x22, 0x28, 0x2B, 0x0E, 0x14, 0x2B, 0x31, 0x00, 0x3A, 0x3A, + 0x05, 0x05, 0x1B, 0x1D, 0x33, 0x06, 0x35, 0x35, 0x20, 0x21, 0x37, 0x21, 0x24, 0x05, 0x1B, 0x2C, + 0x2C, 0x2C, 0x06, 0x34, 0x1E, 0x34, 0x00, 0x08, 0x36, 0x09, 0x21, 0x26, 0x1C, 0x2C, 0x00, 0x02, + 0x02, 0x02, 0x3F, 0x04, 0x04, 0x04, 0x34, 0x39, 0x20, 0x0A, 0x0C, 0x39, 0x0B, 0x0F, 0x07, 0x07, + 0x07, 0x07, 0x34, 0x39, 0x39, 0x0A, 0x0C, 0x39, 0x0C, 0x0F, 0x07, 0x07, 0x07, 0x00, 0x39, 0x39, + 0x0C, 0x0F, 0x07, 0x07, 0x39, 0x0C, 0x0F, 0x07, 0x39, 0x0C, 0x0F, 0x39, 0x39, 0x0C, 0x0F, 0x39, + 0x0C, 0x39, 0x0C, 0x0F, 0x00, 0x11, 0x27, 0x17, 0x2F, 0x27, 0x00, 0x27, 0x17, 0x00, 0x11, 0x17, + 0x00, 0x11, 0x17, 0x11, 0x00, 0x27, 0x15, 0x11, 0x17, 0x01, 0x15, 0x11, 0x15, 0x11, 0x15, 0x15, + 0x17, 0x00, 0x27, 0x01, 0x27, 0x27, 0x15, 0x00, 0x27, 0x11, 0x27, 0x15, 0x15, 0x15, 0x27, 0x15, + 0x15, 0x15, 0x15, 0x17, 0x2F, 0x11, 0x17, 0x27, 0x27, 0x27, 0x11, 0x27, 0x15, 0x27, 0x27, 0x15, + 0x15, 0x27, 0x17, 0x2F, 0x27, 0x17, 0x2F, 0x27, 0x17, 0x2F, 0x27, 0x17, 0x2F, 0x27, 0x17, 0x2F, + 0x27, 0x17, 0x2F, 0x27, 0x17, 0x2F, 0x27, 0x17, 0x2F, 0x27, 0x17, 0x2F, 0x27, 0x17, 0x2F, 0x27, + 0x17, 0x2F, 0x27, 0x17, 0x2F, 0x27, 0x17, 0x2F, 0x17, 0x2F, 0x2B, 0x00, 0x27, 0x00, 0x00, 0x11, + 0x15, 0x00, 0x11, 0x11, 0x27, 0x27, 0x15, 0x17, 0x15, 0x17, 0x15, 0x17, 0x27, 0x17, 0x27, 0x17, + 0x27, 0x17, 0x27, 0x17, 0x27, 0x17, 0x27, 0x17, 0x27, 0x17, 0x27, 0x17, 0x27, 0x17, 0x27, 0x17, + 0x27, 0x15, 0x27, 0x27, 0x15, 0x27 +}; + +const uint32_t ff_aac_ac_hash_m[742] = { + 0x00000104, 0x0000030A, 0x00000510, 0x00000716, + 0x00000A1F, 0x00000F2E, 0x00011100, 0x00111103, + 0x00111306, 0x00111436, 0x00111623, 0x00111929, + 0x00111F2E, 0x0011221B, 0x00112435, 0x00112621, + 0x00112D12, 0x00113130, 0x0011331D, 0x00113535, + 0x00113938, 0x0011411B, 0x00114433, 0x00114635, + 0x00114F29, 0x00116635, 0x00116F24, 0x00117433, + 0x0011FF0F, 0x00121102, 0x0012132D, 0x00121436, + 0x00121623, 0x00121912, 0x0012213F, 0x0012232D, + 0x00122436, 0x00122638, 0x00122A29, 0x00122F2B, + 0x0012322D, 0x00123436, 0x00123738, 0x00123B29, + 0x0012411D, 0x00124536, 0x00124938, 0x00124F12, + 0x00125535, 0x00125F29, 0x00126535, 0x0012B837, + 0x0013112A, 0x0013131E, 0x0013163B, 0x0013212D, + 0x0013233C, 0x00132623, 0x00132F2E, 0x0013321E, + 0x00133521, 0x00133824, 0x0013411E, 0x00134336, + 0x00134838, 0x00135135, 0x00135537, 0x00135F12, + 0x00137637, 0x0013FF29, 0x00140024, 0x00142321, + 0x00143136, 0x00143321, 0x00143F25, 0x00144321, + 0x00148638, 0x0014FF29, 0x00154323, 0x0015FF12, + 0x0016F20C, 0x0018A529, 0x00210031, 0x0021122C, + 0x00211408, 0x00211713, 0x00211F2E, 0x0021222A, + 0x00212408, 0x00212710, 0x00212F2E, 0x0021331E, + 0x00213436, 0x00213824, 0x0021412D, 0x0021431E, + 0x00214536, 0x00214F1F, 0x00216637, 0x00220004, + 0x0022122A, 0x00221420, 0x00221829, 0x00221F2E, + 0x0022222D, 0x00222408, 0x00222623, 0x00222929, + 0x00222F2B, 0x0022321E, 0x00223408, 0x00223724, + 0x00223A29, 0x0022411E, 0x00224436, 0x00224823, + 0x00225134, 0x00225621, 0x00225F12, 0x00226336, + 0x00227637, 0x0022FF29, 0x0023112D, 0x0023133C, + 0x00231420, 0x00231916, 0x0023212D, 0x0023233C, + 0x00232509, 0x00232929, 0x0023312D, 0x00233308, + 0x00233509, 0x00233724, 0x0023413C, 0x00234421, + 0x00234A13, 0x0023513C, 0x00235421, 0x00235F1F, + 0x00236421, 0x0023FF29, 0x00240024, 0x0024153B, + 0x00242108, 0x00242409, 0x00242726, 0x00243108, + 0x00243409, 0x00243610, 0x00244136, 0x00244321, + 0x00244523, 0x00244F1F, 0x00245423, 0x0024610A, + 0x00246423, 0x0024FF29, 0x00252510, 0x00253121, + 0x0025343B, 0x00254121, 0x00254510, 0x00254F25, + 0x00255221, 0x0025FF12, 0x00266513, 0x0027F529, + 0x0029F101, 0x002CF224, 0x00310030, 0x0031122A, + 0x00311420, 0x00311816, 0x0031212C, 0x0031231E, + 0x00312408, 0x00312710, 0x0031312A, 0x0031321E, + 0x00313408, 0x00313623, 0x0031411E, 0x0031433C, + 0x00320007, 0x0032122D, 0x00321420, 0x00321816, + 0x0032212D, 0x0032233C, 0x00322509, 0x00322916, + 0x0032312D, 0x00323420, 0x00323710, 0x00323F2B, + 0x00324308, 0x00324623, 0x00324F25, 0x00325421, + 0x00325F1F, 0x00326421, 0x0032FF29, 0x00331107, + 0x00331308, 0x0033150D, 0x0033211E, 0x00332308, + 0x00332420, 0x00332610, 0x00332929, 0x0033311E, + 0x00333308, 0x0033363B, 0x00333A29, 0x0033413C, + 0x00334320, 0x0033463B, 0x00334A29, 0x0033510A, + 0x00335320, 0x00335824, 0x0033610A, 0x00336321, + 0x00336F12, 0x00337623, 0x00341139, 0x0034153B, + 0x00342108, 0x00342409, 0x00342610, 0x00343108, + 0x00343409, 0x00343610, 0x00344108, 0x0034440D, + 0x00344610, 0x0034510A, 0x00345309, 0x0034553B, + 0x0034610A, 0x00346309, 0x0034F824, 0x00350029, + 0x00352510, 0x00353120, 0x0035330D, 0x00353510, + 0x00354120, 0x0035430D, 0x00354510, 0x00354F28, + 0x0035530D, 0x00355510, 0x00355F1F, 0x00356410, + 0x00359626, 0x0035FF12, 0x00366426, 0x0036FF12, + 0x0037F426, 0x0039D712, 0x003BF612, 0x003DF81F, + 0x00410004, 0x00411207, 0x0041150D, 0x0041212A, + 0x00412420, 0x0041311E, 0x00413308, 0x00413509, + 0x00413F2B, 0x00414208, 0x00420007, 0x0042123C, + 0x00421409, 0x00422107, 0x0042223C, 0x00422409, + 0x00422610, 0x0042313C, 0x00423409, 0x0042363B, + 0x0042413C, 0x00424320, 0x0042463B, 0x00425108, + 0x00425409, 0x0042FF29, 0x00431107, 0x00431320, + 0x0043153B, 0x0043213C, 0x00432320, 0x00432610, + 0x0043313C, 0x00433320, 0x0043353B, 0x00433813, + 0x00434108, 0x00434409, 0x00434610, 0x00435108, + 0x0043553B, 0x00435F25, 0x00436309, 0x0043753B, + 0x0043FF29, 0x00441239, 0x0044143B, 0x00442139, + 0x00442309, 0x0044253B, 0x00443108, 0x00443220, + 0x0044353B, 0x0044410A, 0x00444309, 0x0044453B, + 0x00444813, 0x0044510A, 0x00445309, 0x00445510, + 0x00445F25, 0x0044630D, 0x00450026, 0x00452713, + 0x00453120, 0x0045330D, 0x00453510, 0x00454120, + 0x0045430D, 0x00454510, 0x00455120, 0x0045530D, + 0x00456209, 0x00456410, 0x0045FF12, 0x00466513, + 0x0047FF22, 0x0048FF25, 0x0049F43D, 0x004BFB25, + 0x004EF825, 0x004FFF18, 0x00511339, 0x00512107, + 0x00513409, 0x00520007, 0x00521107, 0x00521320, + 0x00522107, 0x00522409, 0x0052313C, 0x00523320, + 0x0052353B, 0x00524108, 0x00524320, 0x00531139, + 0x00531309, 0x00532139, 0x00532309, 0x0053253B, + 0x00533108, 0x0053340D, 0x00533713, 0x00534108, + 0x0053453B, 0x00534F2B, 0x00535309, 0x00535610, + 0x00535F25, 0x0053643B, 0x00541139, 0x00542139, + 0x00542309, 0x00542613, 0x00543139, 0x00543309, + 0x00543510, 0x00543F2B, 0x00544309, 0x00544510, + 0x00544F28, 0x0054530D, 0x0054FF12, 0x00553613, + 0x00553F2B, 0x00554410, 0x0055510A, 0x0055543B, + 0x00555F25, 0x0055633B, 0x0055FF12, 0x00566513, + 0x00577413, 0x0059FF28, 0x005CC33D, 0x005EFB28, + 0x005FFF18, 0x00611339, 0x00612107, 0x00613320, + 0x0061A724, 0x00621107, 0x0062140B, 0x00622107, + 0x00622320, 0x00623139, 0x00623320, 0x00631139, + 0x0063130C, 0x00632139, 0x00632309, 0x00633139, + 0x00633309, 0x00633626, 0x00633F2B, 0x00634309, + 0x00634F2B, 0x0063543B, 0x0063FF12, 0x0064343B, + 0x00643F2B, 0x0064443B, 0x00645209, 0x00665513, + 0x0066610A, 0x00666526, 0x0067A616, 0x0069843D, + 0x006CF612, 0x006EF326, 0x006FFF18, 0x0071130C, + 0x00721107, 0x00722239, 0x0072291C, 0x0072340B, + 0x00731139, 0x00732239, 0x0073630B, 0x0073FF12, + 0x0074430B, 0x00755426, 0x00776F28, 0x00777410, + 0x0078843D, 0x007CF416, 0x007EF326, 0x007FFF18, + 0x00822239, 0x00831139, 0x0083430B, 0x0084530B, + 0x0087561C, 0x00887F25, 0x00888426, 0x008AF61C, + 0x008F0018, 0x008FFF18, 0x00911107, 0x0093230B, + 0x0094530B, 0x0097743D, 0x00998C25, 0x00999616, + 0x009EF825, 0x009FFF18, 0x00A3430B, 0x00A4530B, + 0x00A7743D, 0x00AA9F2B, 0x00AAA616, 0x00ABD61F, + 0x00AFFF18, 0x00B3330B, 0x00B44426, 0x00B7643D, + 0x00BB971F, 0x00BBB53D, 0x00BEF512, 0x00BFFF18, + 0x00C22139, 0x00C5330E, 0x00C7633D, 0x00CCAF2E, + 0x00CCC616, 0x00CFFF18, 0x00D4440E, 0x00D6420E, + 0x00DDCF2E, 0x00DDD516, 0x00DFFF18, 0x00E4330E, + 0x00E6841C, 0x00EEE61C, 0x00EFFF18, 0x00F3320E, + 0x00F55319, 0x00F8F41C, 0x00FAFF2E, 0x00FF002E, + 0x00FFF10C, 0x00FFF33D, 0x00FFF722, 0x00FFFF18, + 0x01000232, 0x0111113E, 0x01112103, 0x0111311A, + 0x0112111A, 0x01122130, 0x01123130, 0x0112411D, + 0x01131102, 0x01132102, 0x01133102, 0x01141108, + 0x01142136, 0x01143136, 0x01144135, 0x0115223B, + 0x01211103, 0x0121211A, 0x01213130, 0x01221130, + 0x01222130, 0x01223102, 0x01231104, 0x01232104, + 0x01233104, 0x01241139, 0x01241220, 0x01242220, + 0x01251109, 0x0125223B, 0x0125810A, 0x01283212, + 0x0131111A, 0x01312130, 0x0131222C, 0x0131322A, + 0x0132122A, 0x0132222D, 0x0132322D, 0x01331207, + 0x01332234, 0x01333234, 0x01341139, 0x01343134, + 0x01344134, 0x01348134, 0x0135220B, 0x0136110B, + 0x01365224, 0x01411102, 0x01412104, 0x01431239, + 0x01432239, 0x0143320A, 0x01435134, 0x01443107, + 0x01444134, 0x01446134, 0x0145220E, 0x01455134, + 0x0147110E, 0x01511102, 0x01521239, 0x01531239, + 0x01532239, 0x01533107, 0x0155220E, 0x01555134, + 0x0157110E, 0x01611107, 0x01621239, 0x01631239, + 0x01661139, 0x01666134, 0x01711107, 0x01721239, + 0x01745107, 0x0177110C, 0x01811107, 0x01821107, + 0x0185110C, 0x0188210C, 0x01911107, 0x01933139, + 0x01A11107, 0x01A31139, 0x01F5220E, 0x02000001, + 0x02000127, 0x02000427, 0x02000727, 0x02000E2F, + 0x02110000, 0x02111200, 0x02111411, 0x02111827, + 0x02111F2F, 0x02112411, 0x02112715, 0x02113200, + 0x02113411, 0x02113715, 0x02114200, 0x02121200, + 0x02121301, 0x02121F2F, 0x02122200, 0x02122615, + 0x02122F2F, 0x02123311, 0x02123F2F, 0x02124411, + 0x02131211, 0x02132311, 0x02133211, 0x02184415, + 0x02211200, 0x02211311, 0x02211F2F, 0x02212311, + 0x02212F2F, 0x02213211, 0x02221201, 0x02221311, + 0x02221F2F, 0x02222311, 0x02222F2F, 0x02223211, + 0x02223F2F, 0x02231211, 0x02232211, 0x02232F2F, + 0x02233211, 0x02233F2F, 0x02287515, 0x022DAB17, + 0x02311211, 0x02311527, 0x02312211, 0x02321211, + 0x02322211, 0x02322F2F, 0x02323311, 0x02323F2F, + 0x02331211, 0x02332211, 0x02332F2F, 0x02333F2F, + 0x0237FF17, 0x02385615, 0x023D9517, 0x02410027, + 0x02487827, 0x024E3117, 0x024FFF2F, 0x02598627, + 0x025DFF2F, 0x025FFF2F, 0x02687827, 0x026DFA17, + 0x026FFF2F, 0x02796427, 0x027E4217, 0x027FFF2F, + 0x02888727, 0x028EFF2F, 0x028FFF2F, 0x02984327, + 0x029F112F, 0x029FFF2F, 0x02A76527, 0x02AEF717, + 0x02AFFF2F, 0x02B7C827, 0x02BEF917, 0x02BFFF2F, + 0x02C66527, 0x02CD5517, 0x02CFFF2F, 0x02D63227, + 0x02DDD527, 0x02DFFF2B, 0x02E84717, 0x02EEE327, + 0x02EFFF2F, 0x02F54527, 0x02FCF817, 0x02FFEF2B, + 0x02FFFA2F, 0x02FFFE2F, 0x03000127, 0x03000201, + 0x03111200, 0x03122115, 0x03123200, 0x03133211, + 0x03211200, 0x03213127, 0x03221200, 0x03345215, + 0x04000F17, 0x04122F17, 0x043F6515, 0x043FFF17, + 0x044F5527, 0x044FFF17, 0x045F0017, 0x045FFF17, + 0x046F6517, 0x04710027, 0x047F4427, 0x04810027, + 0x048EFA15, 0x048FFF2F, 0x049F4427, 0x049FFF2F, + 0x04AEA727, 0x04AFFF2F, 0x04BE9C15, 0x04BFFF2F, + 0x04CE5427, 0x04CFFF2F, 0x04DE3527, 0x04DFFF17, + 0x04EE4627, 0x04EFFF17, 0x04FEF327, 0x04FFFF2F, + 0x06000F27, 0x069FFF17, 0x06FFFF17, 0x08110017, + 0x08EFFF15, 0xFFFFFF00 +}; + /* @name swb_offsets * Sample offset into the window indicating the beginning of a scalefactor * window band diff --git a/libavcodec/aactab.h b/libavcodec/aactab.h index 91262380d4..9d584ebbe5 100644 --- a/libavcodec/aactab.h +++ b/libavcodec/aactab.h @@ -93,6 +93,12 @@ extern const float *const ff_aac_codebook_vectors[]; extern const float *const ff_aac_codebook_vector_vals[]; extern const uint16_t *const ff_aac_codebook_vector_idx[]; +extern const uint16_t ff_aac_ac_msb_cdfs[64][17]; +extern const uint16_t ff_aac_ac_lsb_cdfs[3][4]; +extern const uint8_t ff_aac_ac_lookup_m[742]; +extern const uint32_t ff_aac_ac_hash_m[742]; +extern const uint16_t ff_aac_ac_cf_m[64][17]; + extern const uint16_t * const ff_swb_offset_1024[13]; extern const uint16_t * const ff_swb_offset_960 [13]; extern const uint16_t * const ff_swb_offset_512 [13];