📄 cavlc_tables.h
字号:
#ifndef __CAVLC_TABLES_H#define __CAVLC_TABLES_H#include "cavlc.h"#define COEFF_TOKEN(TrailingOnes,TotalCoeff) (((TotalCoeff)<<2)|(TrailingOnes))static code_table_item CoeffTokenCodes[4][64]={ {///// 0 <= nC < 2 ///// { 0x00000000, 0, 0 }, // BOT { 0x00020000, 15, COEFF_TOKEN(1,13) }, // 0000 0000 0000 001 { 0x00040000, 16, COEFF_TOKEN(0,16) }, // 0000 0000 0000 0100 { 0x00050000, 16, COEFF_TOKEN(2,16) }, // 0000 0000 0000 0101 { 0x00060000, 16, COEFF_TOKEN(1,16) }, // 0000 0000 0000 0110 { 0x00070000, 16, COEFF_TOKEN(0,15) }, // 0000 0000 0000 0111 { 0x00080000, 16, COEFF_TOKEN(3,16) }, // 0000 0000 0000 1000 { 0x00090000, 16, COEFF_TOKEN(2,15) }, // 0000 0000 0000 1001 { 0x000A0000, 16, COEFF_TOKEN(1,15) }, // 0000 0000 0000 1010 { 0x000B0000, 16, COEFF_TOKEN(0,14) }, // 0000 0000 0000 1011 { 0x000C0000, 16, COEFF_TOKEN(3,15) }, // 0000 0000 0000 1100 { 0x000D0000, 16, COEFF_TOKEN(2,14) }, // 0000 0000 0000 1101 { 0x000E0000, 16, COEFF_TOKEN(1,14) }, // 0000 0000 0000 1110 { 0x000F0000, 16, COEFF_TOKEN(0,13) }, // 0000 0000 0000 1111 { 0x00100000, 15, COEFF_TOKEN(3,14) }, // 0000 0000 0001 000 { 0x00120000, 15, COEFF_TOKEN(2,13) }, // 0000 0000 0001 001 { 0x00140000, 15, COEFF_TOKEN(1,12) }, // 0000 0000 0001 010 { 0x00160000, 15, COEFF_TOKEN(0,12) }, // 0000 0000 0001 011 { 0x00180000, 15, COEFF_TOKEN(3,13) }, // 0000 0000 0001 100 { 0x001A0000, 15, COEFF_TOKEN(2,12) }, // 0000 0000 0001 101 { 0x001C0000, 15, COEFF_TOKEN(1,11) }, // 0000 0000 0001 110 { 0x001E0000, 15, COEFF_TOKEN(0,11) }, // 0000 0000 0001 111 { 0x00200000, 14, COEFF_TOKEN(3,12) }, // 0000 0000 0010 00 { 0x00240000, 14, COEFF_TOKEN(2,11) }, // 0000 0000 0010 01 { 0x00280000, 14, COEFF_TOKEN(1,10) }, // 0000 0000 0010 10 { 0x002C0000, 14, COEFF_TOKEN(0,10) }, // 0000 0000 0010 11 { 0x00300000, 14, COEFF_TOKEN(3,11) }, // 0000 0000 0011 00 { 0x00340000, 14, COEFF_TOKEN(2,10) }, // 0000 0000 0011 01 { 0x00380000, 14, COEFF_TOKEN(1, 9) }, // 0000 0000 0011 10 { 0x003C0000, 14, COEFF_TOKEN(0, 9) }, // 0000 0000 0011 11 { 0x00400000, 13, COEFF_TOKEN(0, 8) }, // 0000 0000 0100 0 { 0x00480000, 13, COEFF_TOKEN(2, 9) }, // 0000 0000 0100 1 { 0x00500000, 13, COEFF_TOKEN(1, 8) }, // 0000 0000 0101 0 { 0x00580000, 13, COEFF_TOKEN(0, 7) }, // 0000 0000 0101 1 { 0x00600000, 13, COEFF_TOKEN(3,10) }, // 0000 0000 0110 0 { 0x00680000, 13, COEFF_TOKEN(2, 8) }, // 0000 0000 0110 1 { 0x00700000, 13, COEFF_TOKEN(1, 7) }, // 0000 0000 0111 0 { 0x00780000, 13, COEFF_TOKEN(0, 6) }, // 0000 0000 0111 1 { 0x00800000, 11, COEFF_TOKEN(3, 9) }, // 0000 0000 100 { 0x00A00000, 11, COEFF_TOKEN(2, 7) }, // 0000 0000 101 { 0x00C00000, 11, COEFF_TOKEN(1, 6) }, // 0000 0000 110 { 0x00E00000, 11, COEFF_TOKEN(0, 5) }, // 0000 0000 111 { 0x01000000, 10, COEFF_TOKEN(3, 8) }, // 0000 0001 00 { 0x01400000, 10, COEFF_TOKEN(2, 6) }, // 0000 0001 01 { 0x01800000, 10, COEFF_TOKEN(1, 5) }, // 0000 0001 10 { 0x01C00000, 10, COEFF_TOKEN(0, 4) }, // 0000 0001 11 { 0x02000000, 9, COEFF_TOKEN(3, 7) }, // 0000 0010 0 { 0x02800000, 9, COEFF_TOKEN(2, 5) }, // 0000 0010 1 { 0x03000000, 9, COEFF_TOKEN(1, 4) }, // 0000 0011 0 { 0x03800000, 9, COEFF_TOKEN(0, 3) }, // 0000 0011 1 { 0x04000000, 8, COEFF_TOKEN(3, 6) }, // 0000 0100 { 0x05000000, 8, COEFF_TOKEN(2, 4) }, // 0000 0101 { 0x06000000, 8, COEFF_TOKEN(1, 3) }, // 0000 0110 { 0x07000000, 8, COEFF_TOKEN(0, 2) }, // 0000 0111 { 0x08000000, 7, COEFF_TOKEN(3, 5) }, // 0000 100 { 0x0A000000, 7, COEFF_TOKEN(2, 3) }, // 0000 101 { 0x0C000000, 6, COEFF_TOKEN(3, 4) }, // 0000 11 { 0x10000000, 6, COEFF_TOKEN(1, 2) }, // 0001 00 { 0x14000000, 6, COEFF_TOKEN(0, 1) }, // 0001 01 { 0x18000000, 5, COEFF_TOKEN(3, 3) }, // 0001 1 { 0x20000000, 3, COEFF_TOKEN(2, 2) }, // 001 { 0x40000000, 2, COEFF_TOKEN(1, 1) }, // 01 { 0x80000000, 1, COEFF_TOKEN(0, 0) }, // 1 { 0xFFFFFFFF, 0, 0 } // EOT},{///// 2 <= nC < 4 ///// { 0x00000000, 0, 0 }, // BOT { 0x00080000, 13, COEFF_TOKEN(3,15) }, // 0000 0000 0000 1 { 0x00100000, 14, COEFF_TOKEN(3,16) }, // 0000 0000 0001 00 { 0x00140000, 14, COEFF_TOKEN(2,16) }, // 0000 0000 0001 01 { 0x00180000, 14, COEFF_TOKEN(1,16) }, // 0000 0000 0001 10 { 0x001C0000, 14, COEFF_TOKEN(0,16) }, // 0000 0000 0001 11 { 0x00200000, 14, COEFF_TOKEN(1,15) }, // 0000 0000 0010 00 { 0x00240000, 14, COEFF_TOKEN(0,15) }, // 0000 0000 0010 01 { 0x00280000, 14, COEFF_TOKEN(2,15) }, // 0000 0000 0010 10 { 0x002C0000, 14, COEFF_TOKEN(1,14) }, // 0000 0000 0010 11 { 0x00300000, 13, COEFF_TOKEN(2,14) }, // 0000 0000 0011 0 { 0x00380000, 13, COEFF_TOKEN(0,14) }, // 0000 0000 0011 1 { 0x00400000, 13, COEFF_TOKEN(3,14) }, // 0000 0000 0100 0 { 0x00480000, 13, COEFF_TOKEN(2,13) }, // 0000 0000 0100 1 { 0x00500000, 13, COEFF_TOKEN(1,13) }, // 0000 0000 0101 0 { 0x00580000, 13, COEFF_TOKEN(0,13) }, // 0000 0000 0101 1 { 0x00600000, 13, COEFF_TOKEN(3,13) }, // 0000 0000 0110 0 { 0x00680000, 13, COEFF_TOKEN(2,12) }, // 0000 0000 0110 1 { 0x00700000, 13, COEFF_TOKEN(1,12) }, // 0000 0000 0111 0 { 0x00780000, 13, COEFF_TOKEN(0,12) }, // 0000 0000 0111 1 { 0x00800000, 12, COEFF_TOKEN(0,11) }, // 0000 0000 1000 { 0x00900000, 12, COEFF_TOKEN(2,11) }, // 0000 0000 1001 { 0x00A00000, 12, COEFF_TOKEN(1,11) }, // 0000 0000 1010 { 0x00B00000, 12, COEFF_TOKEN(0,10) }, // 0000 0000 1011 { 0x00C00000, 12, COEFF_TOKEN(3,12) }, // 0000 0000 1100 { 0x00D00000, 12, COEFF_TOKEN(2,10) }, // 0000 0000 1101 { 0x00E00000, 12, COEFF_TOKEN(1,10) }, // 0000 0000 1110 { 0x00F00000, 12, COEFF_TOKEN(0, 9) }, // 0000 0000 1111 { 0x01000000, 11, COEFF_TOKEN(3,11) }, // 0000 0001 000 { 0x01200000, 11, COEFF_TOKEN(2, 9) }, // 0000 0001 001 { 0x01400000, 11, COEFF_TOKEN(1, 9) }, // 0000 0001 010 { 0x01600000, 11, COEFF_TOKEN(0, 8) }, // 0000 0001 011 { 0x01800000, 11, COEFF_TOKEN(3,10) }, // 0000 0001 100 { 0x01A00000, 11, COEFF_TOKEN(2, 8) }, // 0000 0001 101 { 0x01C00000, 11, COEFF_TOKEN(1, 8) }, // 0000 0001 110 { 0x01E00000, 11, COEFF_TOKEN(0, 7) }, // 0000 0001 111 { 0x02000000, 9, COEFF_TOKEN(3, 9) }, // 0000 0010 0 { 0x02800000, 9, COEFF_TOKEN(2, 7) }, // 0000 0010 1 { 0x03000000, 9, COEFF_TOKEN(1, 7) }, // 0000 0011 0 { 0x03800000, 9, COEFF_TOKEN(0, 6) }, // 0000 0011 1 { 0x04000000, 8, COEFF_TOKEN(0, 5) }, // 0000 0100 { 0x05000000, 8, COEFF_TOKEN(2, 6) }, // 0000 0101 { 0x06000000, 8, COEFF_TOKEN(1, 6) }, // 0000 0110 { 0x07000000, 8, COEFF_TOKEN(0, 4) }, // 0000 0111 { 0x08000000, 7, COEFF_TOKEN(3, 8) }, // 0000 100 { 0x0A000000, 7, COEFF_TOKEN(2, 5) }, // 0000 101 { 0x0C000000, 7, COEFF_TOKEN(1, 5) }, // 0000 110 { 0x0E000000, 7, COEFF_TOKEN(0, 3) }, // 0000 111 { 0x10000000, 6, COEFF_TOKEN(3, 7) }, // 0001 00 { 0x14000000, 6, COEFF_TOKEN(2, 4) }, // 0001 01 { 0x18000000, 6, COEFF_TOKEN(1, 4) }, // 0001 10 { 0x1C000000, 6, COEFF_TOKEN(0, 2) }, // 0001 11 { 0x20000000, 6, COEFF_TOKEN(3, 6) }, // 0010 00 { 0x24000000, 6, COEFF_TOKEN(2, 3) }, // 0010 01 { 0x28000000, 6, COEFF_TOKEN(1, 3) }, // 0010 10 { 0x2C000000, 6, COEFF_TOKEN(0, 1) }, // 0010 11 { 0x30000000, 5, COEFF_TOKEN(3, 5) }, // 0011 0 { 0x38000000, 5, COEFF_TOKEN(1, 2) }, // 0011 1 { 0x40000000, 4, COEFF_TOKEN(3, 4) }, // 0100 { 0x50000000, 4, COEFF_TOKEN(3, 3) }, // 0101 { 0x60000000, 3, COEFF_TOKEN(2, 2) }, // 011 { 0x80000000, 2, COEFF_TOKEN(1, 1) }, // 10 { 0xC0000000, 2, COEFF_TOKEN(0, 0) }, // 11 { 0xFFFFFFFF, 0, 0 } // EOT},{///// 4 <= nC < 8 ///// { 0x00000000, 0, 0 }, // BOT { 0x00400000, 10, COEFF_TOKEN(0,16) }, // 0000 0000 01 { 0x00800000, 10, COEFF_TOKEN(3,16) }, // 0000 0000 10 { 0x00C00000, 10, COEFF_TOKEN(2,16) }, // 0000 0000 11 { 0x01000000, 10, COEFF_TOKEN(1,16) }, // 0000 0001 00 { 0x01400000, 10, COEFF_TOKEN(0,15) }, // 0000 0001 01 { 0x01800000, 10, COEFF_TOKEN(3,15) }, // 0000 0001 10 { 0x01C00000, 10, COEFF_TOKEN(2,15) }, // 0000 0001 11 { 0x02000000, 10, COEFF_TOKEN(1,15) }, // 0000 0010 00 { 0x02400000, 10, COEFF_TOKEN(0,14) }, // 0000 0010 01 { 0x02800000, 10, COEFF_TOKEN(3,14) }, // 0000 0010 10 { 0x02C00000, 10, COEFF_TOKEN(2,14) }, // 0000 0010 11 { 0x03000000, 10, COEFF_TOKEN(1,14) }, // 0000 0011 00 { 0x03400000, 10, COEFF_TOKEN(0,13) }, // 0000 0011 01 { 0x03800000, 9, COEFF_TOKEN(1,13) }, // 0000 0011 1 { 0x04000000, 9, COEFF_TOKEN(0,12) }, // 0000 0100 0 { 0x04800000, 9, COEFF_TOKEN(2,13) }, // 0000 0100 1 { 0x05000000, 9, COEFF_TOKEN(1,12) }, // 0000 0101 0 { 0x05800000, 9, COEFF_TOKEN(0,11) }, // 0000 0101 1 { 0x06000000, 9, COEFF_TOKEN(3,13) }, // 0000 0110 0 { 0x06800000, 9, COEFF_TOKEN(2,12) }, // 0000 0110 1 { 0x07000000, 9, COEFF_TOKEN(1,11) }, // 0000 0111 0 { 0x07800000, 9, COEFF_TOKEN(0,10) }, // 0000 0111 1 { 0x08000000, 8, COEFF_TOKEN(3,12) }, // 0000 1000 { 0x09000000, 8, COEFF_TOKEN(2,11) }, // 0000 1001 { 0x0A000000, 8, COEFF_TOKEN(1,10) }, // 0000 1010 { 0x0B000000, 8, COEFF_TOKEN(0, 9) }, // 0000 1011 { 0x0C000000, 8, COEFF_TOKEN(3,11) }, // 0000 1100 { 0x0D000000, 8, COEFF_TOKEN(2,10) }, // 0000 1101 { 0x0E000000, 8, COEFF_TOKEN(1, 9) }, // 0000 1110 { 0x0F000000, 8, COEFF_TOKEN(0, 8) }, // 0000 1111 { 0x10000000, 7, COEFF_TOKEN(0, 7) }, // 0001 000 { 0x12000000, 7, COEFF_TOKEN(0, 6) }, // 0001 001 { 0x14000000, 7, COEFF_TOKEN(2, 9) }, // 0001 010 { 0x16000000, 7, COEFF_TOKEN(0, 5) }, // 0001 011 { 0x18000000, 7, COEFF_TOKEN(3,10) }, // 0001 100 { 0x1A000000, 7, COEFF_TOKEN(2, 8) }, // 0001 101 { 0x1C000000, 7, COEFF_TOKEN(1, 8) }, // 0001 110 { 0x1E000000, 7, COEFF_TOKEN(0, 4) }, // 0001 111 { 0x20000000, 6, COEFF_TOKEN(0, 3) }, // 0010 00 { 0x24000000, 6, COEFF_TOKEN(2, 7) }, // 0010 01 { 0x28000000, 6, COEFF_TOKEN(1, 7) }, // 0010 10 { 0x2C000000, 6, COEFF_TOKEN(0, 2) }, // 0010 11 { 0x30000000, 6, COEFF_TOKEN(3, 9) }, // 0011 00 { 0x34000000, 6, COEFF_TOKEN(2, 6) }, // 0011 01 { 0x38000000, 6, COEFF_TOKEN(1, 6) }, // 0011 10 { 0x3C000000, 6, COEFF_TOKEN(0, 1) }, // 0011 11 { 0x40000000, 5, COEFF_TOKEN(1, 5) }, // 0100 0 { 0x48000000, 5, COEFF_TOKEN(2, 5) }, // 0100 1 { 0x50000000, 5, COEFF_TOKEN(1, 4) }, // 0101 0 { 0x58000000, 5, COEFF_TOKEN(2, 4) }, // 0101 1 { 0x60000000, 5, COEFF_TOKEN(1, 3) }, // 0110 0 { 0x68000000, 5, COEFF_TOKEN(3, 8) }, // 0110 1 { 0x70000000, 5, COEFF_TOKEN(2, 3) }, // 0111 0 { 0x78000000, 5, COEFF_TOKEN(1, 2) }, // 0111 1 { 0x80000000, 4, COEFF_TOKEN(3, 7) }, // 1000 { 0x90000000, 4, COEFF_TOKEN(3, 6) }, // 1001 { 0xA0000000, 4, COEFF_TOKEN(3, 5) }, // 1010 { 0xB0000000, 4, COEFF_TOKEN(3, 4) }, // 1011 { 0xC0000000, 4, COEFF_TOKEN(3, 3) }, // 1100 { 0xD0000000, 4, COEFF_TOKEN(2, 2) }, // 1101 { 0xE0000000, 4, COEFF_TOKEN(1, 1) }, // 1110 { 0xF0000000, 4, COEFF_TOKEN(0, 0) }, // 1111 { 0xFFFFFFFF, 0, 0 } // EOT},{///// 8 <= nC ///// { 0x00000000, 6, COEFF_TOKEN(0, 1) }, // 0000 00 { 0x04000000, 6, COEFF_TOKEN(1, 1) }, // 0000 01 { 0x0C000000, 6, COEFF_TOKEN(0, 0) }, // 0000 11 { 0x10000000, 6, COEFF_TOKEN(0, 2) }, // 0001 00 { 0x14000000, 6, COEFF_TOKEN(1, 2) }, // 0001 01 { 0x18000000, 6, COEFF_TOKEN(2, 2) }, // 0001 10 { 0x20000000, 6, COEFF_TOKEN(0, 3) }, // 0010 00 { 0x24000000, 6, COEFF_TOKEN(1, 3) }, // 0010 01 { 0x28000000, 6, COEFF_TOKEN(2, 3) }, // 0010 10 { 0x2C000000, 6, COEFF_TOKEN(3, 3) }, // 0010 11 { 0x30000000, 6, COEFF_TOKEN(0, 4) }, // 0011 00 { 0x34000000, 6, COEFF_TOKEN(1, 4) }, // 0011 01 { 0x38000000, 6, COEFF_TOKEN(2, 4) }, // 0011 10 { 0x3C000000, 6, COEFF_TOKEN(3, 4) }, // 0011 11 { 0x40000000, 6, COEFF_TOKEN(0, 5) }, // 0100 00 { 0x44000000, 6, COEFF_TOKEN(1, 5) }, // 0100 01 { 0x48000000, 6, COEFF_TOKEN(2, 5) }, // 0100 10 { 0x4C000000, 6, COEFF_TOKEN(3, 5) }, // 0100 11 { 0x50000000, 6, COEFF_TOKEN(0, 6) }, // 0101 00 { 0x54000000, 6, COEFF_TOKEN(1, 6) }, // 0101 01 { 0x58000000, 6, COEFF_TOKEN(2, 6) }, // 0101 10 { 0x5C000000, 6, COEFF_TOKEN(3, 6) }, // 0101 11 { 0x60000000, 6, COEFF_TOKEN(0, 7) }, // 0110 00 { 0x64000000, 6, COEFF_TOKEN(1, 7) }, // 0110 01 { 0x68000000, 6, COEFF_TOKEN(2, 7) }, // 0110 10 { 0x6C000000, 6, COEFF_TOKEN(3, 7) }, // 0110 11 { 0x70000000, 6, COEFF_TOKEN(0, 8) }, // 0111 00 { 0x74000000, 6, COEFF_TOKEN(1, 8) }, // 0111 01 { 0x78000000, 6, COEFF_TOKEN(2, 8) }, // 0111 10 { 0x7C000000, 6, COEFF_TOKEN(3, 8) }, // 0111 11 { 0x80000000, 6, COEFF_TOKEN(0, 9) }, // 1000 00 { 0x84000000, 6, COEFF_TOKEN(1, 9) }, // 1000 01 { 0x88000000, 6, COEFF_TOKEN(2, 9) }, // 1000 10 { 0x8C000000, 6, COEFF_TOKEN(3, 9) }, // 1000 11 { 0x90000000, 6, COEFF_TOKEN(0,10) }, // 1001 00 { 0x94000000, 6, COEFF_TOKEN(1,10) }, // 1001 01 { 0x98000000, 6, COEFF_TOKEN(2,10) }, // 1001 10 { 0x9C000000, 6, COEFF_TOKEN(3,10) }, // 1001 11 { 0xA0000000, 6, COEFF_TOKEN(0,11) }, // 1010 00 { 0xA4000000, 6, COEFF_TOKEN(1,11) }, // 1010 01 { 0xA8000000, 6, COEFF_TOKEN(2,11) }, // 1010 10 { 0xAC000000, 6, COEFF_TOKEN(3,11) }, // 1010 11 { 0xB0000000, 6, COEFF_TOKEN(0,12) }, // 1011 00 { 0xB4000000, 6, COEFF_TOKEN(1,12) }, // 1011 01 { 0xB8000000, 6, COEFF_TOKEN(2,12) }, // 1011 10 { 0xBC000000, 6, COEFF_TOKEN(3,12) }, // 1011 11 { 0xC0000000, 6, COEFF_TOKEN(0,13) }, // 1100 00 { 0xC4000000, 6, COEFF_TOKEN(1,13) }, // 1100 01 { 0xC8000000, 6, COEFF_TOKEN(2,13) }, // 1100 10 { 0xCC000000, 6, COEFF_TOKEN(3,13) }, // 1100 11 { 0xD0000000, 6, COEFF_TOKEN(0,14) }, // 1101 00 { 0xD4000000, 6, COEFF_TOKEN(1,14) }, // 1101 01 { 0xD8000000, 6, COEFF_TOKEN(2,14) }, // 1101 10 { 0xDC000000, 6, COEFF_TOKEN(3,14) }, // 1101 11 { 0xE0000000, 6, COEFF_TOKEN(0,15) }, // 1110 00 { 0xE4000000, 6, COEFF_TOKEN(1,15) }, // 1110 01 { 0xE8000000, 6, COEFF_TOKEN(2,15) }, // 1110 10 { 0xEC000000, 6, COEFF_TOKEN(3,15) }, // 1110 11 { 0xF0000000, 6, COEFF_TOKEN(0,16) }, // 1111 00 { 0xF4000000, 6, COEFF_TOKEN(1,16) }, // 1111 01 { 0xF8000000, 6, COEFF_TOKEN(2,16) }, // 1111 10 { 0xFC000000, 6, COEFF_TOKEN(3,16) }, // 1111 11 { 0xFFFFFFFF, 0, 0 } // EOT} };static code_table_item CoeffTokenCodes_ChromaDC[15]={
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -