📄 intrax8huf.h
字号:
/* * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */#ifndef FFMPEG_INTRAX8HUF_H#define FFMPEG_INTRAX8HUF_H#include <inttypes.h>static const uint16_t x8_orient_lowquant_table[4][12][2]={ {//0 {0x0000, 1}, {0x0004, 3}, {0x0005, 3}, {0x000C, 4}, {0x000D, 4}, {0x0038, 6}, {0x001D, 5}, {0x0039, 6}, {0x003C, 6}, {0x003D, 6}, {0x003E, 6}, {0x003F, 6}, },{//1 {0x0000, 5}, {0x0001, 5}, {0x0002, 5}, {0x0001, 2}, {0x0002, 2}, {0x0002, 4}, {0x0003, 5}, {0x0006, 3}, {0x0003, 4}, {0x000E, 4}, {0x001E, 5}, {0x001F, 5}, },{//2 {0x0000, 2}, {0x0001, 2}, {0x0004, 3}, {0x0005, 3}, {0x0006, 3}, {0x0038, 6}, {0x0039, 6}, {0x001D, 5}, {0x003C, 6}, {0x003D, 6}, {0x003E, 6}, {0x003F, 6}, },{//3 {0x0000, 3}, {0x0002, 4}, {0x0003, 4}, {0x0001, 2}, {0x0002, 2}, {0x0018, 5}, {0x0019, 5}, {0x000D, 4}, {0x001C, 5}, {0x001D, 5}, {0x001E, 5}, {0x001F, 5}, }};static const uint16_t x8_orient_highquant_table[2][12][2]={ {//0 {0x0000, 2}, {0x0001, 2}, {0x0004, 3}, {0x0005, 3}, {0x0006, 3}, {0x0038, 6}, {0x001D, 5}, {0x0039, 6}, {0x003C, 6}, {0x003D, 6}, {0x003E, 6}, {0x003F, 6}, },{//1 {0x0000, 1}, {0x0002, 2}, {0x0006, 3}, {0x001C, 5}, {0x001D, 5}, {0x0078, 7}, {0x003D, 6}, {0x0079, 7}, {0x007C, 7}, {0x007D, 7}, {0x007E, 7}, {0x007F, 7}, }};#define MAX_OR_VLC_BITS 7static const uint16_t x8_dc_lowquant_table[8][34][2]={ {//0 {0x0000, 5}, {0x0001, 4}, {0x0001, 5}, {0x0004, 5}, {0x0005, 5}, {0x0006, 5}, {0x000E, 6}, {0x000F, 6}, {0x0040, 8}, {0x0041, 8}, {0x0840, 13}, {0x0841, 13}, {0x0842, 13}, {0x0843, 13}, {0x0844, 13}, {0x0845, 13}, {0x0846, 13}, {0x0002, 2}, {0x0003, 2}, {0x0003, 3}, {0x0005, 4}, {0x0009, 5}, {0x0011, 6}, {0x0043, 8}, {0x0085, 9}, {0x0847, 13}, {0x0848, 13}, {0x0849, 13}, {0x084A, 13}, {0x084B, 13}, {0x084C, 13}, {0x084D, 13}, {0x084E, 13}, {0x084F, 13}, },{//1 {0x0000, 4}, {0x0001, 3}, {0x0002, 3}, {0x0001, 4}, {0x0006, 4}, {0x0004, 3}, {0x0007, 4}, {0x0005, 3}, {0x000C, 4}, {0x000D, 4}, {0x001C, 5}, {0x003A, 6}, {0x01D8, 9}, {0x01D9, 9}, {0x1DA0, 13}, {0x1DA1, 13}, {0x1DA2, 13}, {0x003C, 6}, {0x003D, 6}, {0x003E, 6}, {0x0077, 7}, {0x01DB, 9}, {0x007E, 7}, {0x00FE, 8}, {0x01FE, 9}, {0x1DA3, 13}, {0x1DA4, 13}, {0x1DA5, 13}, {0x0ED3, 12}, {0x0ED4, 12}, {0x01FF, 9}, {0x0ED5, 12}, {0x0ED6, 12}, {0x0ED7, 12}, },{//2 {0x0000, 4}, {0x0001, 3}, {0x0002, 3}, {0x0001, 4}, {0x0006, 4}, {0x0007, 4}, {0x0008, 4}, {0x0009, 4}, {0x0028, 6}, {0x0029, 6}, {0x0054, 7}, {0x0055, 7}, {0x0AC0, 12}, {0x0AC1, 12}, {0x0AC2, 12}, {0x0AC3, 12}, {0x0AC4, 12}, {0x000B, 4}, {0x0006, 3}, {0x000E, 4}, {0x001E, 5}, {0x003E, 6}, {0x003F, 6}, {0x0057, 7}, {0x00AD, 8}, {0x0AC5, 12}, {0x0AC6, 12}, {0x0AC7, 12}, {0x0AC8, 12}, {0x0AC9, 12}, {0x0ACA, 12}, {0x0ACB, 12}, {0x0566, 11}, {0x0567, 11}, },{//3 {0x0000, 4}, {0x0001, 2}, {0x0001, 3}, {0x0004, 3}, {0x0005, 3}, {0x0006, 3}, {0x0001, 4}, {0x000E, 4}, {0x003C, 6}, {0x003D, 6}, {0x007C, 7}, {0x00FA, 8}, {0x3EC0, 14}, {0x3EC1, 14}, {0x3EC2, 14}, {0x3EC3, 14}, {0x1F62, 13}, {0x01F7, 9}, {0x007E, 7}, {0x00FE, 8}, {0x00FF, 8}, {0x1F63, 13}, {0x1F64, 13}, {0x1F65, 13}, {0x1F66, 13}, {0x1F67, 13}, {0x1F68, 13}, {0x1F69, 13}, {0x1F6A, 13}, {0x1F6B, 13}, {0x1F6C, 13}, {0x1F6D, 13}, {0x1F6E, 13}, {0x1F6F, 13}, },{//4 {0x0000, 7}, {0x0001, 7}, {0x0002, 7}, {0x0003, 7}, {0x0004, 7}, {0x0005, 7}, {0x0006, 7}, {0x0007, 7}, {0x0008, 7}, {0x0009, 7}, {0x000A, 7}, {0x000B, 7}, {0x000C, 7}, {0x000D, 7}, {0x000E, 7}, {0x000F, 7}, {0x0010, 7}, {0x0001, 1}, {0x0001, 2}, {0x0011, 7}, {0x0012, 7}, {0x0013, 7}, {0x0014, 7}, {0x0015, 7}, {0x0016, 7}, {0x0017, 7}, {0x0018, 7}, {0x0019, 7}, {0x001A, 7}, {0x001B, 7}, {0x001C, 7}, {0x001D, 7}, {0x001E, 7}, {0x001F, 7}, },{//5 {0x0000, 5}, {0x0001, 4}, {0x0001, 5}, {0x0008, 6}, {0x0009, 6}, {0x000A, 6}, {0x0016, 7}, {0x000C, 6}, {0x0017, 7}, {0x000D, 6}, {0x0038, 8}, {0x001D, 7}, {0x0039, 8}, {0x0780, 13}, {0x0781, 13}, {0x0782, 13}, {0x0783, 13}, {0x0002, 3}, {0x0001, 1}, {0x0003, 3}, {0x001F, 7}, {0x003D, 8}, {0x0079, 9}, {0x0784, 13}, {0x0785, 13}, {0x0786, 13}, {0x0787, 13}, {0x0788, 13}, {0x0789, 13}, {0x078A, 13}, {0x078B, 13}, {0x078C, 13}, {0x078D, 13}, {0x03C7, 12}, },{//6 {0x0000, 4}, {0x0001, 2}, {0x0001, 3}, {0x0004, 3}, {0x0001, 4}, {0x000A, 4}, {0x0016, 5}, {0x002E, 6}, {0x005E, 7}, {0x005F, 7}, {0x00C0, 8}, {0x3040, 14}, {0x3041, 14}, {0x0305, 10}, {0x0183, 9}, {0x3042, 14}, {0x3043, 14}, {0x000D, 4}, {0x0007, 3}, {0x0019, 5}, {0x0031, 6}, {0x00C2, 8}, {0x00C3, 8}, {0x3044, 14}, {0x3045, 14}, {0x3046, 14}, {0x3047, 14}, {0x3048, 14}, {0x3049, 14}, {0x304A, 14}, {0x304B, 14}, {0x304C, 14}, {0x304D, 14}, {0x1827, 13}, },{//7 {0x0000, 6}, {0x0001, 6}, {0x0002, 6}, {0x0006, 7}, {0x0007, 7}, {0x0004, 6}, {0x0005, 6}, {0x0006, 6}, {0x000E, 7}, {0x001E, 8}, {0x001F, 8}, {0x0040, 9}, {0x0082, 10}, {0x0830, 14}, {0x0831, 14}, {0x0832, 14}, {0x0833, 14}, {0x0001, 1}, {0x0001, 2}, {0x0003, 4}, {0x0005, 5}, {0x0009, 6}, {0x0011, 7}, {0x0021, 8}, {0x0834, 14}, {0x0835, 14}, {0x0836, 14}, {0x0837, 14}, {0x0838, 14}, {0x0839, 14}, {0x083A, 14}, {0x083B, 14}, {0x041E, 13}, {0x041F, 13}, }};static const uint16_t x8_dc_highquant_table[8][34][2]={ {//0 {0x0000, 5}, {0x0001, 4}, {0x0002, 4}, {0x0001, 5}, {0x0006, 5}, {0x0004, 4}, {0x0007, 5}, {0x000A, 5}, {0x002C, 7}, {0x002D, 7}, {0x05C0, 12}, {0x05C1, 12}, {0x05C2, 12}, {0x05C3, 12}, {0x05C4, 12}, {0x05C5, 12}, {0x05C6, 12}, {0x0003, 3}, {0x0002, 2}, {0x0006, 3}, {0x000E, 4}, {0x001E, 5}, {0x001F, 5}, {0x002F, 7}, {0x005D, 8}, {0x05C7, 12}, {0x05C8, 12}, {0x05C9, 12}, {0x05CA, 12}, {0x05CB, 12}, {0x05CC, 12}, {0x05CD, 12}, {0x05CE, 12}, {0x05CF, 12}, },{//1 {0x0000, 3}, {0x0001, 3}, {0x0002, 3}, {0x0006, 4}, {0x0007, 4}, {0x0004, 3}, {0x000A, 4}, {0x000B, 4}, {0x0030, 6}, {0x0062, 7}, {0x0063, 7}, {0x0640, 11}, {0x0641, 11}, {0x0642, 11}, {0x0643, 11}, {0x0644, 11}, {0x0645, 11}, {0x0033, 6}, {0x000D, 4}, {0x001C, 5}, {0x001D, 5}, {0x003C, 6}, {0x001F, 5}, {0x0065, 7}, {0x007A, 7}, {0x0646, 11}, {0x007B, 7}, {0x0647, 11}, {0x0648, 11}, {0x0649, 11}, {0x064A, 11}, {0x064B, 11}, {0x0326, 10}, {0x0327, 10}, },{//2 {0x0000, 7}, {0x0001, 7}, {0x0001, 6}, {0x0004, 7}, {0x0003, 6}, {0x0005, 7}, {0x0010, 8}, {0x0011, 8}, {0x0240, 13}, {0x0241, 13}, {0x0242, 13}, {0x0243, 13}, {0x0244, 13}, {0x0245, 13}, {0x0246, 13}, {0x0247, 13}, {0x0124, 12}, {0x0001, 1}, {0x0001, 2}, {0x0001, 3}, {0x0003, 5}, {0x0005, 6}, {0x0013, 8}, {0x0125, 12}, {0x0126, 12}, {0x0127, 12}, {0x0128, 12}, {0x0129, 12}, {0x012A, 12}, {0x012B, 12}, {0x012C, 12}, {0x012D, 12}, {0x012E, 12}, {0x012F, 12}, },{//3 {0x0000, 4}, {0x0001, 3}, {0x0002, 3}, {0x0001, 4}, {0x0006, 4}, {0x0004, 3}, {0x0005, 3}, {0x0006, 3}, {0x000E, 5}, {0x000F, 5}, {0x0070, 7}, {0x0710, 11}, {0x0711, 11}, {0x0712, 11}, {0x0713, 11}, {0x0714, 11}, {0x0715, 11}, {0x001D, 5}, {0x0072, 7}, {0x003C, 6}, {0x003D, 6}, {0x0073, 7}, {0x007C, 7}, {0x007D, 7}, {0x007E, 7}, {0x0716, 11}, {0x0717, 11}, {0x0718, 11}, {0x007F, 7}, {0x0719, 11}, {0x071A, 11}, {0x071B, 11}, {0x038E, 10}, {0x038F, 10}, },{//4 {0x0000, 8}, {0x0001, 7}, {0x0002, 7}, {0x0003, 7}, {0x0002, 9}, {0x0008, 8}, {0x0003, 9}, {0x0240, 14}, {0x0241, 14}, {0x0242, 14}, {0x0243, 14}, {0x0244, 14}, {0x0245, 14}, {0x0246, 14}, {0x0247, 14}, {0x0124, 13}, {0x0125, 13}, {0x0001, 2}, {0x0001, 1}, {0x0001, 3}, {0x0001, 4}, {0x0003, 6}, {0x0005, 7}, {0x0013, 9}, {0x0126, 13}, {0x0127, 13}, {0x0128, 13}, {0x0129, 13}, {0x012A, 13}, {0x012B, 13}, {0x012C, 13}, {0x012D, 13}, {0x012E, 13}, {0x012F, 13}, },{//5 {0x0000, 7}, {0x0001, 7}, {0x0001, 6}, {0x0002, 6}, {0x0003, 6}, {0x0004, 6}, {0x0005, 6}, {0x0006, 6}, {0x0007, 6}, {0x0008, 6}, {0x0009, 6}, {0x000A, 6}, {0x000B, 6}, {0x000C, 6}, {0x000D, 6}, {0x000E, 6}, {0x000F, 6}, {0x0010, 6}, {0x0011, 6}, {0x0012, 6}, {0x0013, 6}, {0x0014, 6}, {0x0015, 6}, {0x0016, 6}, {0x0017, 6}, {0x0018, 6}, {0x0019, 6}, {0x0001, 1}, {0x001A, 6}, {0x001B, 6}, {0x001C, 6}, {0x001D, 6}, {0x001E, 6}, {0x001F, 6}, },{//6 {0x0000, 5}, {0x0001, 4}, {0x0001, 5}, {0x0004, 5}, {0x000A, 6}, {0x0006, 5}, {0x000B, 6}, {0x000E, 6}, {0x003C, 8}, {0x003D, 8}, {0x07C0, 13}, {0x07C1, 13}, {0x07C2, 13}, {0x07C3, 13}, {0x07C4, 13}, {0x07C5, 13}, {0x07C6, 13}, {0x0001, 2}, {0x0002, 2}, {0x0006, 3}, {0x000E, 4}, {0x001E, 5}, {0x001F, 5}, {0x003F, 8}, {0x007D, 9}, {0x07C7, 13}, {0x07C8, 13}, {0x07C9, 13}, {0x07CA, 13}, {0x07CB, 13}, {0x07CC, 13}, {0x07CD, 13}, {0x07CE, 13}, {0x07CF, 13}, },{//7 {0x0000, 7}, {0x0001, 7}, {0x0002, 7}, {0x0003, 7}, {0x0004, 7}, {0x0005, 7}, {0x0006, 7}, {0x0007, 7}, {0x0008, 7}, {0x0009, 7}, {0x000A, 7}, {0x000B, 7}, {0x000C, 7}, {0x000D, 7}, {0x000E, 7}, {0x000F, 7}, {0x0010, 7}, {0x0001, 1}, {0x0001, 2}, {0x0011, 7}, {0x0012, 7}, {0x0013, 7}, {0x0014, 7}, {0x0015, 7}, {0x0016, 7}, {0x0017, 7}, {0x0018, 7}, {0x0019, 7}, {0x001A, 7}, {0x001B, 7}, {0x001C, 7}, {0x001D, 7}, {0x001E, 7}, {0x001F, 7}, }};#define MAX_DC_VLC_BITS 14static const uint16_t x8_ac0_lowquant_table[8][77][2]={ {//0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -