vlc.c
上传用户:lctgjx
上传日期:2022-06-04
资源大小:8887k
文件大小:31k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*****************************************************************************
  2.  * vlc.c : vlc table
  3.  *****************************************************************************
  4.  * Copyright (C) 2003 Laurent Aimar <fenrir@via.ecp.fr>
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program; if not, write to the Free Software
  18.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111, USA.
  19.  *****************************************************************************/
  20. #include "common.h"
  21. #define MKVLC( a, b ) { a, b }
  22. const vlc_t x264_coeff0_token[5] =
  23. {
  24.     MKVLC( 0x1, 1 ), /* str=1 */
  25.     MKVLC( 0x3, 2 ), /* str=11 */
  26.     MKVLC( 0xf, 4 ), /* str=1111 */
  27.     MKVLC( 0x3, 6 ), /* str=000011 */
  28.     MKVLC( 0x1, 2 )  /* str=01 */
  29. };
  30. const vlc_t x264_coeff_token[5][16*4] =
  31. {
  32.     /* table 0 */
  33.     {
  34.         MKVLC( 0x5, 6 ), /* str=000101 */
  35.         MKVLC( 0x1, 2 ), /* str=01 */
  36.         MKVLC( 0x0, 0 ), /* str= */
  37.         MKVLC( 0x0, 0 ), /* str= */
  38.         MKVLC( 0x7, 8 ), /* str=00000111 */
  39.         MKVLC( 0x4, 6 ), /* str=000100 */
  40.         MKVLC( 0x1, 3 ), /* str=001 */
  41.         MKVLC( 0x0, 0 ), /* str= */
  42.         MKVLC( 0x7, 9 ), /* str=000000111 */
  43.         MKVLC( 0x6, 8 ), /* str=00000110 */
  44.         MKVLC( 0x5, 7 ), /* str=0000101 */
  45.         MKVLC( 0x3, 5 ), /* str=00011 */
  46.         MKVLC( 0x7, 10 ), /* str=0000000111 */
  47.         MKVLC( 0x6, 9 ), /* str=000000110 */
  48.         MKVLC( 0x5, 8 ), /* str=00000101 */
  49.         MKVLC( 0x3, 6 ), /* str=000011 */
  50.         MKVLC( 0x7, 11 ), /* str=00000000111 */
  51.         MKVLC( 0x6, 10 ), /* str=0000000110 */
  52.         MKVLC( 0x5, 9 ), /* str=000000101 */
  53.         MKVLC( 0x4, 7 ), /* str=0000100 */
  54.         MKVLC( 0xf, 13 ), /* str=0000000001111 */
  55.         MKVLC( 0x6, 11 ), /* str=00000000110 */
  56.         MKVLC( 0x5, 10 ), /* str=0000000101 */
  57.         MKVLC( 0x4, 8 ), /* str=00000100 */
  58.         MKVLC( 0xb, 13 ), /* str=0000000001011 */
  59.         MKVLC( 0xe, 13 ), /* str=0000000001110 */
  60.         MKVLC( 0x5, 11 ), /* str=00000000101 */
  61.         MKVLC( 0x4, 9 ), /* str=000000100 */
  62.         MKVLC( 0x8, 13 ), /* str=0000000001000 */
  63.         MKVLC( 0xa, 13 ), /* str=0000000001010 */
  64.         MKVLC( 0xd, 13 ), /* str=0000000001101 */
  65.         MKVLC( 0x4, 10 ), /* str=0000000100 */
  66.         MKVLC( 0xf, 14 ), /* str=00000000001111 */
  67.         MKVLC( 0xe, 14 ), /* str=00000000001110 */
  68.         MKVLC( 0x9, 13 ), /* str=0000000001001 */
  69.         MKVLC( 0x4, 11 ), /* str=00000000100 */
  70.         MKVLC( 0xb, 14 ), /* str=00000000001011 */
  71.         MKVLC( 0xa, 14 ), /* str=00000000001010 */
  72.         MKVLC( 0xd, 14 ), /* str=00000000001101 */
  73.         MKVLC( 0xc, 13 ), /* str=0000000001100 */
  74.         MKVLC( 0xf, 15 ), /* str=000000000001111 */
  75.         MKVLC( 0xe, 15 ), /* str=000000000001110 */
  76.         MKVLC( 0x9, 14 ), /* str=00000000001001 */
  77.         MKVLC( 0xc, 14 ), /* str=00000000001100 */
  78.         MKVLC( 0xb, 15 ), /* str=000000000001011 */
  79.         MKVLC( 0xa, 15 ), /* str=000000000001010 */
  80.         MKVLC( 0xd, 15 ), /* str=000000000001101 */
  81.         MKVLC( 0x8, 14 ), /* str=00000000001000 */
  82.         MKVLC( 0xf, 16 ), /* str=0000000000001111 */
  83.         MKVLC( 0x1, 15 ), /* str=000000000000001 */
  84.         MKVLC( 0x9, 15 ), /* str=000000000001001 */
  85.         MKVLC( 0xc, 15 ), /* str=000000000001100 */
  86.         MKVLC( 0xb, 16 ), /* str=0000000000001011 */
  87.         MKVLC( 0xe, 16 ), /* str=0000000000001110 */
  88.         MKVLC( 0xd, 16 ), /* str=0000000000001101 */
  89.         MKVLC( 0x8, 15 ), /* str=000000000001000 */
  90.         MKVLC( 0x7, 16 ), /* str=0000000000000111 */
  91.         MKVLC( 0xa, 16 ), /* str=0000000000001010 */
  92.         MKVLC( 0x9, 16 ), /* str=0000000000001001 */
  93.         MKVLC( 0xc, 16 ), /* str=0000000000001100 */
  94.         MKVLC( 0x4, 16 ), /* str=0000000000000100 */
  95.         MKVLC( 0x6, 16 ), /* str=0000000000000110 */
  96.         MKVLC( 0x5, 16 ), /* str=0000000000000101 */
  97.         MKVLC( 0x8, 16 ), /* str=0000000000001000 */
  98.     },
  99.     /* table 1 */
  100.     {
  101.         MKVLC( 0xb, 6 ), /* str=001011 */
  102.         MKVLC( 0x2, 2 ), /* str=10 */
  103.         MKVLC( 0x0, 0 ), /* str= */
  104.         MKVLC( 0x0, 0 ), /* str= */
  105.         MKVLC( 0x7, 6 ), /* str=000111 */
  106.         MKVLC( 0x7, 5 ), /* str=00111 */
  107.         MKVLC( 0x3, 3 ), /* str=011 */
  108.         MKVLC( 0x0, 0 ), /* str= */
  109.         MKVLC( 0x7, 7 ), /* str=0000111 */
  110.         MKVLC( 0xa, 6 ), /* str=001010 */
  111.         MKVLC( 0x9, 6 ), /* str=001001 */
  112.         MKVLC( 0x5, 4 ), /* str=0101 */
  113.         MKVLC( 0x7, 8 ), /* str=00000111 */
  114.         MKVLC( 0x6, 6 ), /* str=000110 */
  115.         MKVLC( 0x5, 6 ), /* str=000101 */
  116.         MKVLC( 0x4, 4 ), /* str=0100 */
  117.         MKVLC( 0x4, 8 ), /* str=00000100 */
  118.         MKVLC( 0x6, 7 ), /* str=0000110 */
  119.         MKVLC( 0x5, 7 ), /* str=0000101 */
  120.         MKVLC( 0x6, 5 ), /* str=00110 */
  121.         MKVLC( 0x7, 9 ), /* str=000000111 */
  122.         MKVLC( 0x6, 8 ), /* str=00000110 */
  123.         MKVLC( 0x5, 8 ), /* str=00000101 */
  124.         MKVLC( 0x8, 6 ), /* str=001000 */
  125.         MKVLC( 0xf, 11 ), /* str=00000001111 */
  126.         MKVLC( 0x6, 9 ), /* str=000000110 */
  127.         MKVLC( 0x5, 9 ), /* str=000000101 */
  128.         MKVLC( 0x4, 6 ), /* str=000100 */
  129.         MKVLC( 0xb, 11 ), /* str=00000001011 */
  130.         MKVLC( 0xe, 11 ), /* str=00000001110 */
  131.         MKVLC( 0xd, 11 ), /* str=00000001101 */
  132.         MKVLC( 0x4, 7 ), /* str=0000100 */
  133.         MKVLC( 0xf, 12 ), /* str=000000001111 */
  134.         MKVLC( 0xa, 11 ), /* str=00000001010 */
  135.         MKVLC( 0x9, 11 ), /* str=00000001001 */
  136.         MKVLC( 0x4, 9 ), /* str=000000100 */
  137.         MKVLC( 0xb, 12 ), /* str=000000001011 */
  138.         MKVLC( 0xe, 12 ), /* str=000000001110 */
  139.         MKVLC( 0xd, 12 ), /* str=000000001101 */
  140.         MKVLC( 0xc, 11 ), /* str=00000001100 */
  141.         MKVLC( 0x8, 12 ), /* str=000000001000 */
  142.         MKVLC( 0xa, 12 ), /* str=000000001010 */
  143.         MKVLC( 0x9, 12 ), /* str=000000001001 */
  144.         MKVLC( 0x8, 11 ), /* str=00000001000 */
  145.         MKVLC( 0xf, 13 ), /* str=0000000001111 */
  146.         MKVLC( 0xe, 13 ), /* str=0000000001110 */
  147.         MKVLC( 0xd, 13 ), /* str=0000000001101 */
  148.         MKVLC( 0xc, 12 ), /* str=000000001100 */
  149.         MKVLC( 0xb, 13 ), /* str=0000000001011 */
  150.         MKVLC( 0xa, 13 ), /* str=0000000001010 */
  151.         MKVLC( 0x9, 13 ), /* str=0000000001001 */
  152.         MKVLC( 0xc, 13 ), /* str=0000000001100 */
  153.         MKVLC( 0x7, 13 ), /* str=0000000000111 */
  154.         MKVLC( 0xb, 14 ), /* str=00000000001011 */
  155.         MKVLC( 0x6, 13 ), /* str=0000000000110 */
  156.         MKVLC( 0x8, 13 ), /* str=0000000001000 */
  157.         MKVLC( 0x9, 14 ), /* str=00000000001001 */
  158.         MKVLC( 0x8, 14 ), /* str=00000000001000 */
  159.         MKVLC( 0xa, 14 ), /* str=00000000001010 */
  160.         MKVLC( 0x1, 13 ), /* str=0000000000001 */
  161.         MKVLC( 0x7, 14 ), /* str=00000000000111 */
  162.         MKVLC( 0x6, 14 ), /* str=00000000000110 */
  163.         MKVLC( 0x5, 14 ), /* str=00000000000101 */
  164.         MKVLC( 0x4, 14 ), /* str=00000000000100 */
  165.     },
  166.     /* table 2 */
  167.     {
  168.         MKVLC( 0xf, 6 ), /* str=001111 */
  169.         MKVLC( 0xe, 4 ), /* str=1110 */
  170.         MKVLC( 0x0, 0 ), /* str= */
  171.         MKVLC( 0x0, 0 ), /* str= */
  172.         MKVLC( 0xb, 6 ), /* str=001011 */
  173.         MKVLC( 0xf, 5 ), /* str=01111 */
  174.         MKVLC( 0xd, 4 ), /* str=1101 */
  175.         MKVLC( 0x0, 0 ), /* str= */
  176.         MKVLC( 0x8, 6 ), /* str=001000 */
  177.         MKVLC( 0xc, 5 ), /* str=01100 */
  178.         MKVLC( 0xe, 5 ), /* str=01110 */
  179.         MKVLC( 0xc, 4 ), /* str=1100 */
  180.         MKVLC( 0xf, 7 ), /* str=0001111 */
  181.         MKVLC( 0xa, 5 ), /* str=01010 */
  182.         MKVLC( 0xb, 5 ), /* str=01011 */
  183.         MKVLC( 0xb, 4 ), /* str=1011 */
  184.         MKVLC( 0xb, 7 ), /* str=0001011 */
  185.         MKVLC( 0x8, 5 ), /* str=01000 */
  186.         MKVLC( 0x9, 5 ), /* str=01001 */
  187.         MKVLC( 0xa, 4 ), /* str=1010 */
  188.         MKVLC( 0x9, 7 ), /* str=0001001 */
  189.         MKVLC( 0xe, 6 ), /* str=001110 */
  190.         MKVLC( 0xd, 6 ), /* str=001101 */
  191.         MKVLC( 0x9, 4 ), /* str=1001 */
  192.         MKVLC( 0x8, 7 ), /* str=0001000 */
  193.         MKVLC( 0xa, 6 ), /* str=001010 */
  194.         MKVLC( 0x9, 6 ), /* str=001001 */
  195.         MKVLC( 0x8, 4 ), /* str=1000 */
  196.         MKVLC( 0xf, 8 ), /* str=00001111 */
  197.         MKVLC( 0xe, 7 ), /* str=0001110 */
  198.         MKVLC( 0xd, 7 ), /* str=0001101 */
  199.         MKVLC( 0xd, 5 ), /* str=01101 */
  200.         MKVLC( 0xb, 8 ), /* str=00001011 */
  201.         MKVLC( 0xe, 8 ), /* str=00001110 */
  202.         MKVLC( 0xa, 7 ), /* str=0001010 */
  203.         MKVLC( 0xc, 6 ), /* str=001100 */
  204.         MKVLC( 0xf, 9 ), /* str=000001111 */
  205.         MKVLC( 0xa, 8 ), /* str=00001010 */
  206.         MKVLC( 0xd, 8 ), /* str=00001101 */
  207.         MKVLC( 0xc, 7 ), /* str=0001100 */
  208.         MKVLC( 0xb, 9 ), /* str=000001011 */
  209.         MKVLC( 0xe, 9 ), /* str=000001110 */
  210.         MKVLC( 0x9, 8 ), /* str=00001001 */
  211.         MKVLC( 0xc, 8 ), /* str=00001100 */
  212.         MKVLC( 0x8, 9 ), /* str=000001000 */
  213.         MKVLC( 0xa, 9 ), /* str=000001010 */
  214.         MKVLC( 0xd, 9 ), /* str=000001101 */
  215.         MKVLC( 0x8, 8 ), /* str=00001000 */
  216.         MKVLC( 0xd, 10 ), /* str=0000001101 */
  217.         MKVLC( 0x7, 9 ), /* str=000000111 */
  218.         MKVLC( 0x9, 9 ), /* str=000001001 */
  219.         MKVLC( 0xc, 9 ), /* str=000001100 */
  220.         MKVLC( 0x9, 10 ), /* str=0000001001 */
  221.         MKVLC( 0xc, 10 ), /* str=0000001100 */
  222.         MKVLC( 0xb, 10 ), /* str=0000001011 */
  223.         MKVLC( 0xa, 10 ), /* str=0000001010 */
  224.         MKVLC( 0x5, 10 ), /* str=0000000101 */
  225.         MKVLC( 0x8, 10 ), /* str=0000001000 */
  226.         MKVLC( 0x7, 10 ), /* str=0000000111 */
  227.         MKVLC( 0x6, 10 ), /* str=0000000110 */
  228.         MKVLC( 0x1, 10 ), /* str=0000000001 */
  229.         MKVLC( 0x4, 10 ), /* str=0000000100 */
  230.         MKVLC( 0x3, 10 ), /* str=0000000011 */
  231.         MKVLC( 0x2, 10 ), /* str=0000000010 */
  232.     },
  233.     /* table 3 */
  234.     {
  235.         MKVLC( 0x0, 6 ), /* str=000000 */
  236.         MKVLC( 0x1, 6 ), /* str=000001 */
  237.         MKVLC( 0x0, 0 ), /* str= */
  238.         MKVLC( 0x0, 0 ), /* str= */
  239.         MKVLC( 0x4, 6 ), /* str=000100 */
  240.         MKVLC( 0x5, 6 ), /* str=000101 */
  241.         MKVLC( 0x6, 6 ), /* str=000110 */
  242.         MKVLC( 0x0, 0 ), /* str= */
  243.         MKVLC( 0x8, 6 ), /* str=001000 */
  244.         MKVLC( 0x9, 6 ), /* str=001001 */
  245.         MKVLC( 0xa, 6 ), /* str=001010 */
  246.         MKVLC( 0xb, 6 ), /* str=001011 */
  247.         MKVLC( 0xc, 6 ), /* str=001100 */
  248.         MKVLC( 0xd, 6 ), /* str=001101 */
  249.         MKVLC( 0xe, 6 ), /* str=001110 */
  250.         MKVLC( 0xf, 6 ), /* str=001111 */
  251.         MKVLC( 0x10, 6 ), /* str=010000 */
  252.         MKVLC( 0x11, 6 ), /* str=010001 */
  253.         MKVLC( 0x12, 6 ), /* str=010010 */
  254.         MKVLC( 0x13, 6 ), /* str=010011 */
  255.         MKVLC( 0x14, 6 ), /* str=010100 */
  256.         MKVLC( 0x15, 6 ), /* str=010101 */
  257.         MKVLC( 0x16, 6 ), /* str=010110 */
  258.         MKVLC( 0x17, 6 ), /* str=010111 */
  259.         MKVLC( 0x18, 6 ), /* str=011000 */
  260.         MKVLC( 0x19, 6 ), /* str=011001 */
  261.         MKVLC( 0x1a, 6 ), /* str=011010 */
  262.         MKVLC( 0x1b, 6 ), /* str=011011 */
  263.         MKVLC( 0x1c, 6 ), /* str=011100 */
  264.         MKVLC( 0x1d, 6 ), /* str=011101 */
  265.         MKVLC( 0x1e, 6 ), /* str=011110 */
  266.         MKVLC( 0x1f, 6 ), /* str=011111 */
  267.         MKVLC( 0x20, 6 ), /* str=100000 */
  268.         MKVLC( 0x21, 6 ), /* str=100001 */
  269.         MKVLC( 0x22, 6 ), /* str=100010 */
  270.         MKVLC( 0x23, 6 ), /* str=100011 */
  271.         MKVLC( 0x24, 6 ), /* str=100100 */
  272.         MKVLC( 0x25, 6 ), /* str=100101 */
  273.         MKVLC( 0x26, 6 ), /* str=100110 */
  274.         MKVLC( 0x27, 6 ), /* str=100111 */
  275.         MKVLC( 0x28, 6 ), /* str=101000 */
  276.         MKVLC( 0x29, 6 ), /* str=101001 */
  277.         MKVLC( 0x2a, 6 ), /* str=101010 */
  278.         MKVLC( 0x2b, 6 ), /* str=101011 */
  279.         MKVLC( 0x2c, 6 ), /* str=101100 */
  280.         MKVLC( 0x2d, 6 ), /* str=101101 */
  281.         MKVLC( 0x2e, 6 ), /* str=101110 */
  282.         MKVLC( 0x2f, 6 ), /* str=101111 */
  283.         MKVLC( 0x30, 6 ), /* str=110000 */
  284.         MKVLC( 0x31, 6 ), /* str=110001 */
  285.         MKVLC( 0x32, 6 ), /* str=110010 */
  286.         MKVLC( 0x33, 6 ), /* str=110011 */
  287.         MKVLC( 0x34, 6 ), /* str=110100 */
  288.         MKVLC( 0x35, 6 ), /* str=110101 */
  289.         MKVLC( 0x36, 6 ), /* str=110110 */
  290.         MKVLC( 0x37, 6 ), /* str=110111 */
  291.         MKVLC( 0x38, 6 ), /* str=111000 */
  292.         MKVLC( 0x39, 6 ), /* str=111001 */
  293.         MKVLC( 0x3a, 6 ), /* str=111010 */
  294.         MKVLC( 0x3b, 6 ), /* str=111011 */
  295.         MKVLC( 0x3c, 6 ), /* str=111100 */
  296.         MKVLC( 0x3d, 6 ), /* str=111101 */
  297.         MKVLC( 0x3e, 6 ), /* str=111110 */
  298.         MKVLC( 0x3f, 6 ), /* str=111111 */
  299.     },
  300.     /* table 4 */
  301.     {
  302.         MKVLC( 0x7, 6 ), /* str=000111 */
  303.         MKVLC( 0x1, 1 ), /* str=1 */
  304.         MKVLC( 0x0, 0 ), /* str= */
  305.         MKVLC( 0x0, 0 ), /* str= */
  306.         MKVLC( 0x4, 6 ), /* str=000100 */
  307.         MKVLC( 0x6, 6 ), /* str=000110 */
  308.         MKVLC( 0x1, 3 ), /* str=001 */
  309.         MKVLC( 0x0, 0 ), /* str= */
  310.         MKVLC( 0x3, 6 ), /* str=000011 */
  311.         MKVLC( 0x3, 7 ), /* str=0000011 */
  312.         MKVLC( 0x2, 7 ), /* str=0000010 */
  313.         MKVLC( 0x5, 6 ), /* str=000101 */
  314.         MKVLC( 0x2, 6 ), /* str=000010 */
  315.         MKVLC( 0x3, 8 ), /* str=00000011 */
  316.         MKVLC( 0x2, 8 ), /* str=00000010 */
  317.         MKVLC( 0x0, 7 ), /* str=0000000 */
  318.         MKVLC( 0x0, 0 ), /* str= */
  319.         MKVLC( 0x0, 0 ), /* str= */
  320.         MKVLC( 0x0, 0 ), /* str= */
  321.         MKVLC( 0x0, 0 ), /* str= */
  322.         MKVLC( 0x0, 0 ), /* str= */
  323.         MKVLC( 0x0, 0 ), /* str= */
  324.         MKVLC( 0x0, 0 ), /* str= */
  325.         MKVLC( 0x0, 0 ), /* str= */
  326.         MKVLC( 0x0, 0 ), /* str= */
  327.         MKVLC( 0x0, 0 ), /* str= */
  328.         MKVLC( 0x0, 0 ), /* str= */
  329.         MKVLC( 0x0, 0 ), /* str= */
  330.         MKVLC( 0x0, 0 ), /* str= */
  331.         MKVLC( 0x0, 0 ), /* str= */
  332.         MKVLC( 0x0, 0 ), /* str= */
  333.         MKVLC( 0x0, 0 ), /* str= */
  334.         MKVLC( 0x0, 0 ), /* str= */
  335.         MKVLC( 0x0, 0 ), /* str= */
  336.         MKVLC( 0x0, 0 ), /* str= */
  337.         MKVLC( 0x0, 0 ), /* str= */
  338.         MKVLC( 0x0, 0 ), /* str= */
  339.         MKVLC( 0x0, 0 ), /* str= */
  340.         MKVLC( 0x0, 0 ), /* str= */
  341.         MKVLC( 0x0, 0 ), /* str= */
  342.         MKVLC( 0x0, 0 ), /* str= */
  343.         MKVLC( 0x0, 0 ), /* str= */
  344.         MKVLC( 0x0, 0 ), /* str= */
  345.         MKVLC( 0x0, 0 ), /* str= */
  346.         MKVLC( 0x0, 0 ), /* str= */
  347.         MKVLC( 0x0, 0 ), /* str= */
  348.         MKVLC( 0x0, 0 ), /* str= */
  349.         MKVLC( 0x0, 0 ), /* str= */
  350.         MKVLC( 0x0, 0 ), /* str= */
  351.         MKVLC( 0x0, 0 ), /* str= */
  352.         MKVLC( 0x0, 0 ), /* str= */
  353.         MKVLC( 0x0, 0 ), /* str= */
  354.         MKVLC( 0x0, 0 ), /* str= */
  355.         MKVLC( 0x0, 0 ), /* str= */
  356.         MKVLC( 0x0, 0 ), /* str= */
  357.         MKVLC( 0x0, 0 ), /* str= */
  358.         MKVLC( 0x0, 0 ), /* str= */
  359.         MKVLC( 0x0, 0 ), /* str= */
  360.         MKVLC( 0x0, 0 ), /* str= */
  361.         MKVLC( 0x0, 0 ), /* str= */
  362.         MKVLC( 0x0, 0 ), /* str= */
  363.         MKVLC( 0x0, 0 ), /* str= */
  364.         MKVLC( 0x0, 0 ), /* str= */
  365.         MKVLC( 0x0, 0 ), /* str= */
  366.     }
  367. };
  368. /* [i_total_coeff-1][i_total_zeros] */
  369. const vlc_t x264_total_zeros[15][16] =
  370. {
  371.     { /* i_total 1 */
  372.         MKVLC( 0x1, 1 ), /* str=1 */
  373.         MKVLC( 0x3, 3 ), /* str=011 */
  374.         MKVLC( 0x2, 3 ), /* str=010 */
  375.         MKVLC( 0x3, 4 ), /* str=0011 */
  376.         MKVLC( 0x2, 4 ), /* str=0010 */
  377.         MKVLC( 0x3, 5 ), /* str=00011 */
  378.         MKVLC( 0x2, 5 ), /* str=00010 */
  379.         MKVLC( 0x3, 6 ), /* str=000011 */
  380.         MKVLC( 0x2, 6 ), /* str=000010 */
  381.         MKVLC( 0x3, 7 ), /* str=0000011 */
  382.         MKVLC( 0x2, 7 ), /* str=0000010 */
  383.         MKVLC( 0x3, 8 ), /* str=00000011 */
  384.         MKVLC( 0x2, 8 ), /* str=00000010 */
  385.         MKVLC( 0x3, 9 ), /* str=000000011 */
  386.         MKVLC( 0x2, 9 ), /* str=000000010 */
  387.         MKVLC( 0x1, 9 ), /* str=000000001 */
  388.     },
  389.     { /* i_total 2 */
  390.         MKVLC( 0x7, 3 ), /* str=111 */
  391.         MKVLC( 0x6, 3 ), /* str=110 */
  392.         MKVLC( 0x5, 3 ), /* str=101 */
  393.         MKVLC( 0x4, 3 ), /* str=100 */
  394.         MKVLC( 0x3, 3 ), /* str=011 */
  395.         MKVLC( 0x5, 4 ), /* str=0101 */
  396.         MKVLC( 0x4, 4 ), /* str=0100 */
  397.         MKVLC( 0x3, 4 ), /* str=0011 */
  398.         MKVLC( 0x2, 4 ), /* str=0010 */
  399.         MKVLC( 0x3, 5 ), /* str=00011 */
  400.         MKVLC( 0x2, 5 ), /* str=00010 */
  401.         MKVLC( 0x3, 6 ), /* str=000011 */
  402.         MKVLC( 0x2, 6 ), /* str=000010 */
  403.         MKVLC( 0x1, 6 ), /* str=000001 */
  404.         MKVLC( 0x0, 6 ), /* str=000000 */
  405.         MKVLC( 0x0, 0 ), /* str= */
  406.     },
  407.     { /* i_total 3 */
  408.         MKVLC( 0x5, 4 ), /* str=0101 */
  409.         MKVLC( 0x7, 3 ), /* str=111 */
  410.         MKVLC( 0x6, 3 ), /* str=110 */
  411.         MKVLC( 0x5, 3 ), /* str=101 */
  412.         MKVLC( 0x4, 4 ), /* str=0100 */
  413.         MKVLC( 0x3, 4 ), /* str=0011 */
  414.         MKVLC( 0x4, 3 ), /* str=100 */
  415.         MKVLC( 0x3, 3 ), /* str=011 */
  416.         MKVLC( 0x2, 4 ), /* str=0010 */
  417.         MKVLC( 0x3, 5 ), /* str=00011 */
  418.         MKVLC( 0x2, 5 ), /* str=00010 */
  419.         MKVLC( 0x1, 6 ), /* str=000001 */
  420.         MKVLC( 0x1, 5 ), /* str=00001 */
  421.         MKVLC( 0x0, 6 ), /* str=000000 */
  422.         MKVLC( 0x0, 0 ), /* str= */
  423.         MKVLC( 0x0, 0 ), /* str= */
  424.     },
  425.     { /* i_total 4 */
  426.         MKVLC( 0x3, 5 ), /* str=00011 */
  427.         MKVLC( 0x7, 3 ), /* str=111 */
  428.         MKVLC( 0x5, 4 ), /* str=0101 */
  429.         MKVLC( 0x4, 4 ), /* str=0100 */
  430.         MKVLC( 0x6, 3 ), /* str=110 */
  431.         MKVLC( 0x5, 3 ), /* str=101 */
  432.         MKVLC( 0x4, 3 ), /* str=100 */
  433.         MKVLC( 0x3, 4 ), /* str=0011 */
  434.         MKVLC( 0x3, 3 ), /* str=011 */
  435.         MKVLC( 0x2, 4 ), /* str=0010 */
  436.         MKVLC( 0x2, 5 ), /* str=00010 */
  437.         MKVLC( 0x1, 5 ), /* str=00001 */
  438.         MKVLC( 0x0, 5 ), /* str=00000 */
  439.         MKVLC( 0x0, 0 ), /* str= */
  440.         MKVLC( 0x0, 0 ), /* str= */
  441.         MKVLC( 0x0, 0 ), /* str= */
  442.     },
  443.     { /* i_total 5 */
  444.         MKVLC( 0x5, 4 ), /* str=0101 */
  445.         MKVLC( 0x4, 4 ), /* str=0100 */
  446.         MKVLC( 0x3, 4 ), /* str=0011 */
  447.         MKVLC( 0x7, 3 ), /* str=111 */
  448.         MKVLC( 0x6, 3 ), /* str=110 */
  449.         MKVLC( 0x5, 3 ), /* str=101 */
  450.         MKVLC( 0x4, 3 ), /* str=100 */
  451.         MKVLC( 0x3, 3 ), /* str=011 */
  452.         MKVLC( 0x2, 4 ), /* str=0010 */
  453.         MKVLC( 0x1, 5 ), /* str=00001 */
  454.         MKVLC( 0x1, 4 ), /* str=0001 */
  455.         MKVLC( 0x0, 5 ), /* str=00000 */
  456.         MKVLC( 0x0, 0 ), /* str= */
  457.         MKVLC( 0x0, 0 ), /* str= */
  458.         MKVLC( 0x0, 0 ), /* str= */
  459.         MKVLC( 0x0, 0 ), /* str= */
  460.     },
  461.     { /* i_total 6 */
  462.         MKVLC( 0x1, 6 ), /* str=000001 */
  463.         MKVLC( 0x1, 5 ), /* str=00001 */
  464.         MKVLC( 0x7, 3 ), /* str=111 */
  465.         MKVLC( 0x6, 3 ), /* str=110 */
  466.         MKVLC( 0x5, 3 ), /* str=101 */
  467.         MKVLC( 0x4, 3 ), /* str=100 */
  468.         MKVLC( 0x3, 3 ), /* str=011 */
  469.         MKVLC( 0x2, 3 ), /* str=010 */
  470.         MKVLC( 0x1, 4 ), /* str=0001 */
  471.         MKVLC( 0x1, 3 ), /* str=001 */
  472.         MKVLC( 0x0, 6 ), /* str=000000 */
  473.         MKVLC( 0x0, 0 ), /* str= */
  474.         MKVLC( 0x0, 0 ), /* str= */
  475.         MKVLC( 0x0, 0 ), /* str= */
  476.         MKVLC( 0x0, 0 ), /* str= */
  477.         MKVLC( 0x0, 0 ), /* str= */
  478.     },
  479.     { /* i_total 7 */
  480.         MKVLC( 0x1, 6 ), /* str=000001 */
  481.         MKVLC( 0x1, 5 ), /* str=00001 */
  482.         MKVLC( 0x5, 3 ), /* str=101 */
  483.         MKVLC( 0x4, 3 ), /* str=100 */
  484.         MKVLC( 0x3, 3 ), /* str=011 */
  485.         MKVLC( 0x3, 2 ), /* str=11 */
  486.         MKVLC( 0x2, 3 ), /* str=010 */
  487.         MKVLC( 0x1, 4 ), /* str=0001 */
  488.         MKVLC( 0x1, 3 ), /* str=001 */
  489.         MKVLC( 0x0, 6 ), /* str=000000 */
  490.         MKVLC( 0x0, 0 ), /* str= */
  491.         MKVLC( 0x0, 0 ), /* str= */
  492.         MKVLC( 0x0, 0 ), /* str= */
  493.         MKVLC( 0x0, 0 ), /* str= */
  494.         MKVLC( 0x0, 0 ), /* str= */
  495.         MKVLC( 0x0, 0 ), /* str= */
  496.     },
  497.     { /* i_total 8 */
  498.         MKVLC( 0x1, 6 ), /* str=000001 */
  499.         MKVLC( 0x1, 4 ), /* str=0001 */
  500.         MKVLC( 0x1, 5 ), /* str=00001 */
  501.         MKVLC( 0x3, 3 ), /* str=011 */
  502.         MKVLC( 0x3, 2 ), /* str=11 */
  503.         MKVLC( 0x2, 2 ), /* str=10 */
  504.         MKVLC( 0x2, 3 ), /* str=010 */
  505.         MKVLC( 0x1, 3 ), /* str=001 */
  506.         MKVLC( 0x0, 6 ), /* str=000000 */
  507.         MKVLC( 0x0, 0 ), /* str= */
  508.         MKVLC( 0x0, 0 ), /* str= */
  509.         MKVLC( 0x0, 0 ), /* str= */
  510.         MKVLC( 0x0, 0 ), /* str= */
  511.         MKVLC( 0x0, 0 ), /* str= */
  512.         MKVLC( 0x0, 0 ), /* str= */
  513.         MKVLC( 0x0, 0 ), /* str= */
  514.     },
  515.     { /* i_total 9 */
  516.         MKVLC( 0x1, 6 ), /* str=000001 */
  517.         MKVLC( 0x0, 6 ), /* str=000000 */
  518.         MKVLC( 0x1, 4 ), /* str=0001 */
  519.         MKVLC( 0x3, 2 ), /* str=11 */
  520.         MKVLC( 0x2, 2 ), /* str=10 */
  521.         MKVLC( 0x1, 3 ), /* str=001 */
  522.         MKVLC( 0x1, 2 ), /* str=01 */
  523.         MKVLC( 0x1, 5 ), /* str=00001 */
  524.         MKVLC( 0x0, 0 ), /* str= */
  525.         MKVLC( 0x0, 0 ), /* str= */
  526.         MKVLC( 0x0, 0 ), /* str= */
  527.         MKVLC( 0x0, 0 ), /* str= */
  528.         MKVLC( 0x0, 0 ), /* str= */
  529.         MKVLC( 0x0, 0 ), /* str= */
  530.         MKVLC( 0x0, 0 ), /* str= */
  531.         MKVLC( 0x0, 0 ), /* str= */
  532.     },
  533.     { /* i_total 10 */
  534.         MKVLC( 0x1, 5 ), /* str=00001 */
  535.         MKVLC( 0x0, 5 ), /* str=00000 */
  536.         MKVLC( 0x1, 3 ), /* str=001 */
  537.         MKVLC( 0x3, 2 ), /* str=11 */
  538.         MKVLC( 0x2, 2 ), /* str=10 */
  539.         MKVLC( 0x1, 2 ), /* str=01 */
  540.         MKVLC( 0x1, 4 ), /* str=0001 */
  541.         MKVLC( 0x0, 0 ), /* str= */
  542.         MKVLC( 0x0, 0 ), /* str= */
  543.         MKVLC( 0x0, 0 ), /* str= */
  544.         MKVLC( 0x0, 0 ), /* str= */
  545.         MKVLC( 0x0, 0 ), /* str= */
  546.         MKVLC( 0x0, 0 ), /* str= */
  547.         MKVLC( 0x0, 0 ), /* str= */
  548.         MKVLC( 0x0, 0 ), /* str= */
  549.         MKVLC( 0x0, 0 ), /* str= */
  550.     },
  551.     { /* i_total 11 */
  552.         MKVLC( 0x0, 4 ), /* str=0000 */
  553.         MKVLC( 0x1, 4 ), /* str=0001 */
  554.         MKVLC( 0x1, 3 ), /* str=001 */
  555.         MKVLC( 0x2, 3 ), /* str=010 */
  556.         MKVLC( 0x1, 1 ), /* str=1 */
  557.         MKVLC( 0x3, 3 ), /* str=011 */
  558.         MKVLC( 0x0, 0 ), /* str= */
  559.         MKVLC( 0x0, 0 ), /* str= */
  560.         MKVLC( 0x0, 0 ), /* str= */
  561.         MKVLC( 0x0, 0 ), /* str= */
  562.         MKVLC( 0x0, 0 ), /* str= */
  563.         MKVLC( 0x0, 0 ), /* str= */
  564.         MKVLC( 0x0, 0 ), /* str= */
  565.         MKVLC( 0x0, 0 ), /* str= */
  566.         MKVLC( 0x0, 0 ), /* str= */
  567.         MKVLC( 0x0, 0 ), /* str= */
  568.     },
  569.     { /* i_total 12 */
  570.         MKVLC( 0x0, 4 ), /* str=0000 */
  571.         MKVLC( 0x1, 4 ), /* str=0001 */
  572.         MKVLC( 0x1, 2 ), /* str=01 */
  573.         MKVLC( 0x1, 1 ), /* str=1 */
  574.         MKVLC( 0x1, 3 ), /* str=001 */
  575.         MKVLC( 0x0, 0 ), /* str= */
  576.         MKVLC( 0x0, 0 ), /* str= */
  577.         MKVLC( 0x0, 0 ), /* str= */
  578.         MKVLC( 0x0, 0 ), /* str= */
  579.         MKVLC( 0x0, 0 ), /* str= */
  580.         MKVLC( 0x0, 0 ), /* str= */
  581.         MKVLC( 0x0, 0 ), /* str= */
  582.         MKVLC( 0x0, 0 ), /* str= */
  583.         MKVLC( 0x0, 0 ), /* str= */
  584.         MKVLC( 0x0, 0 ), /* str= */
  585.         MKVLC( 0x0, 0 ), /* str= */
  586.     },
  587.     { /* i_total 13 */
  588.         MKVLC( 0x0, 3 ), /* str=000 */
  589.         MKVLC( 0x1, 3 ), /* str=001 */
  590.         MKVLC( 0x1, 1 ), /* str=1 */
  591.         MKVLC( 0x1, 2 ), /* str=01 */
  592.         MKVLC( 0x0, 0 ), /* str= */
  593.         MKVLC( 0x0, 0 ), /* str= */
  594.         MKVLC( 0x0, 0 ), /* str= */
  595.         MKVLC( 0x0, 0 ), /* str= */
  596.         MKVLC( 0x0, 0 ), /* str= */
  597.         MKVLC( 0x0, 0 ), /* str= */
  598.         MKVLC( 0x0, 0 ), /* str= */
  599.         MKVLC( 0x0, 0 ), /* str= */
  600.         MKVLC( 0x0, 0 ), /* str= */
  601.         MKVLC( 0x0, 0 ), /* str= */
  602.         MKVLC( 0x0, 0 ), /* str= */
  603.         MKVLC( 0x0, 0 ), /* str= */
  604.     },
  605.     { /* i_total 14 */
  606.         MKVLC( 0x0, 2 ), /* str=00 */
  607.         MKVLC( 0x1, 2 ), /* str=01 */
  608.         MKVLC( 0x1, 1 ), /* str=1 */
  609.         MKVLC( 0x0, 0 ), /* str= */
  610.         MKVLC( 0x0, 0 ), /* str= */
  611.         MKVLC( 0x0, 0 ), /* str= */
  612.         MKVLC( 0x0, 0 ), /* str= */
  613.         MKVLC( 0x0, 0 ), /* str= */
  614.         MKVLC( 0x0, 0 ), /* str= */
  615.         MKVLC( 0x0, 0 ), /* str= */
  616.         MKVLC( 0x0, 0 ), /* str= */
  617.         MKVLC( 0x0, 0 ), /* str= */
  618.         MKVLC( 0x0, 0 ), /* str= */
  619.         MKVLC( 0x0, 0 ), /* str= */
  620.         MKVLC( 0x0, 0 ), /* str= */
  621.         MKVLC( 0x0, 0 ), /* str= */
  622.     },
  623.     { /* i_total 15 */
  624.         MKVLC( 0x0, 1 ), /* str=0 */
  625.         MKVLC( 0x1, 1 ), /* str=1 */
  626.         MKVLC( 0x0, 0 ), /* str= */
  627.         MKVLC( 0x0, 0 ), /* str= */
  628.         MKVLC( 0x0, 0 ), /* str= */
  629.         MKVLC( 0x0, 0 ), /* str= */
  630.         MKVLC( 0x0, 0 ), /* str= */
  631.         MKVLC( 0x0, 0 ), /* str= */
  632.         MKVLC( 0x0, 0 ), /* str= */
  633.         MKVLC( 0x0, 0 ), /* str= */
  634.         MKVLC( 0x0, 0 ), /* str= */
  635.         MKVLC( 0x0, 0 ), /* str= */
  636.         MKVLC( 0x0, 0 ), /* str= */
  637.         MKVLC( 0x0, 0 ), /* str= */
  638.         MKVLC( 0x0, 0 ), /* str= */
  639.         MKVLC( 0x0, 0 ), /* str= */
  640.     },
  641. };
  642. /* [i_total_coeff-1][i_total_zeros] */
  643. const vlc_t x264_total_zeros_dc[3][4] =
  644. {
  645.     {
  646.         MKVLC( 0x01, 1 ), /* 1  */
  647.         MKVLC( 0x01, 2 ), /* 01 */
  648.         MKVLC( 0x01, 3 ), /* 001*/
  649.         MKVLC( 0x00, 3 )  /* 000*/
  650.     },
  651.     {
  652.         MKVLC( 0x01, 1 ), /* 1  */
  653.         MKVLC( 0x01, 2 ), /* 01 */
  654.         MKVLC( 0x00, 2 ), /* 00 */
  655.         MKVLC( 0x00, 0 )  /*    */
  656.     },
  657.     {
  658.         MKVLC( 0x01, 1 ), /* 1  */
  659.         MKVLC( 0x00, 1 ), /* 0  */
  660.         MKVLC( 0x00, 0 ), /*    */
  661.         MKVLC( 0x00, 0 )  /*    */
  662.     }
  663. };
  664. /* x264_run_before[__MIN( i_zero_left -1, 6 )][run_before] */
  665. const vlc_t x264_run_before[7][16] =
  666. {
  667.     { /* i_zero_left 1 */
  668.         MKVLC( 0x1, 1 ), /* str=1 */
  669.         MKVLC( 0x0, 1 ), /* str=0 */
  670.         MKVLC( 0x0, 0 ), /* str= */
  671.         MKVLC( 0x0, 0 ), /* str= */
  672.         MKVLC( 0x0, 0 ), /* str= */
  673.         MKVLC( 0x0, 0 ), /* str= */
  674.         MKVLC( 0x0, 0 ), /* str= */
  675.         MKVLC( 0x0, 0 ), /* str= */
  676.         MKVLC( 0x0, 0 ), /* str= */
  677.         MKVLC( 0x0, 0 ), /* str= */
  678.         MKVLC( 0x0, 0 ), /* str= */
  679.         MKVLC( 0x0, 0 ), /* str= */
  680.         MKVLC( 0x0, 0 ), /* str= */
  681.         MKVLC( 0x0, 0 ), /* str= */
  682.         MKVLC( 0x0, 0 ), /* str= */
  683.     },
  684.     { /* i_zero_left 2 */
  685.         MKVLC( 0x1, 1 ), /* str=1 */
  686.         MKVLC( 0x1, 2 ), /* str=01 */
  687.         MKVLC( 0x0, 2 ), /* str=00 */
  688.         MKVLC( 0x0, 0 ), /* str= */
  689.         MKVLC( 0x0, 0 ), /* str= */
  690.         MKVLC( 0x0, 0 ), /* str= */
  691.         MKVLC( 0x0, 0 ), /* str= */
  692.         MKVLC( 0x0, 0 ), /* str= */
  693.         MKVLC( 0x0, 0 ), /* str= */
  694.         MKVLC( 0x0, 0 ), /* str= */
  695.         MKVLC( 0x0, 0 ), /* str= */
  696.         MKVLC( 0x0, 0 ), /* str= */
  697.         MKVLC( 0x0, 0 ), /* str= */
  698.         MKVLC( 0x0, 0 ), /* str= */
  699.         MKVLC( 0x0, 0 ), /* str= */
  700.     },
  701.     { /* i_zero_left 3 */
  702.         MKVLC( 0x3, 2 ), /* str=11 */
  703.         MKVLC( 0x2, 2 ), /* str=10 */
  704.         MKVLC( 0x1, 2 ), /* str=01 */
  705.         MKVLC( 0x0, 2 ), /* str=00 */
  706.         MKVLC( 0x0, 0 ), /* str= */
  707.         MKVLC( 0x0, 0 ), /* str= */
  708.         MKVLC( 0x0, 0 ), /* str= */
  709.         MKVLC( 0x0, 0 ), /* str= */
  710.         MKVLC( 0x0, 0 ), /* str= */
  711.         MKVLC( 0x0, 0 ), /* str= */
  712.         MKVLC( 0x0, 0 ), /* str= */
  713.         MKVLC( 0x0, 0 ), /* str= */
  714.         MKVLC( 0x0, 0 ), /* str= */
  715.         MKVLC( 0x0, 0 ), /* str= */
  716.         MKVLC( 0x0, 0 ), /* str= */
  717.     },
  718.     { /* i_zero_left 4 */
  719.         MKVLC( 0x3, 2 ), /* str=11 */
  720.         MKVLC( 0x2, 2 ), /* str=10 */
  721.         MKVLC( 0x1, 2 ), /* str=01 */
  722.         MKVLC( 0x1, 3 ), /* str=001 */
  723.         MKVLC( 0x0, 3 ), /* str=000 */
  724.         MKVLC( 0x0, 0 ), /* str= */
  725.         MKVLC( 0x0, 0 ), /* str= */
  726.         MKVLC( 0x0, 0 ), /* str= */
  727.         MKVLC( 0x0, 0 ), /* str= */
  728.         MKVLC( 0x0, 0 ), /* str= */
  729.         MKVLC( 0x0, 0 ), /* str= */
  730.         MKVLC( 0x0, 0 ), /* str= */
  731.         MKVLC( 0x0, 0 ), /* str= */
  732.         MKVLC( 0x0, 0 ), /* str= */
  733.         MKVLC( 0x0, 0 ), /* str= */
  734.     },
  735.     { /* i_zero_left 5 */
  736.         MKVLC( 0x3, 2 ), /* str=11 */
  737.         MKVLC( 0x2, 2 ), /* str=10 */
  738.         MKVLC( 0x3, 3 ), /* str=011 */
  739.         MKVLC( 0x2, 3 ), /* str=010 */
  740.         MKVLC( 0x1, 3 ), /* str=001 */
  741.         MKVLC( 0x0, 3 ), /* str=000 */
  742.         MKVLC( 0x0, 0 ), /* str= */
  743.         MKVLC( 0x0, 0 ), /* str= */
  744.         MKVLC( 0x0, 0 ), /* str= */
  745.         MKVLC( 0x0, 0 ), /* str= */
  746.         MKVLC( 0x0, 0 ), /* str= */
  747.         MKVLC( 0x0, 0 ), /* str= */
  748.         MKVLC( 0x0, 0 ), /* str= */
  749.         MKVLC( 0x0, 0 ), /* str= */
  750.         MKVLC( 0x0, 0 ), /* str= */
  751.     },
  752.     { /* i_zero_left 6 */
  753.         MKVLC( 0x3, 2 ), /* str=11 */
  754.         MKVLC( 0x0, 3 ), /* str=000 */
  755.         MKVLC( 0x1, 3 ), /* str=001 */
  756.         MKVLC( 0x3, 3 ), /* str=011 */
  757.         MKVLC( 0x2, 3 ), /* str=010 */
  758.         MKVLC( 0x5, 3 ), /* str=101 */
  759.         MKVLC( 0x4, 3 ), /* str=100 */
  760.         MKVLC( 0x0, 0 ), /* str= */
  761.         MKVLC( 0x0, 0 ), /* str= */
  762.         MKVLC( 0x0, 0 ), /* str= */
  763.         MKVLC( 0x0, 0 ), /* str= */
  764.         MKVLC( 0x0, 0 ), /* str= */
  765.         MKVLC( 0x0, 0 ), /* str= */
  766.         MKVLC( 0x0, 0 ), /* str= */
  767.         MKVLC( 0x0, 0 ), /* str= */
  768.     },
  769.     { /* i_zero_left 7 */
  770.         MKVLC( 0x7, 3 ), /* str=111 */
  771.         MKVLC( 0x6, 3 ), /* str=110 */
  772.         MKVLC( 0x5, 3 ), /* str=101 */
  773.         MKVLC( 0x4, 3 ), /* str=100 */
  774.         MKVLC( 0x3, 3 ), /* str=011 */
  775.         MKVLC( 0x2, 3 ), /* str=010 */
  776.         MKVLC( 0x1, 3 ), /* str=001 */
  777.         MKVLC( 0x1, 4 ), /* str=0001 */
  778.         MKVLC( 0x1, 5 ), /* str=00001 */
  779.         MKVLC( 0x1, 6 ), /* str=000001 */
  780.         MKVLC( 0x1, 7 ), /* str=0000001 */
  781.         MKVLC( 0x1, 8 ), /* str=00000001 */
  782.         MKVLC( 0x1, 9 ), /* str=000000001 */
  783.         MKVLC( 0x1, 10 ), /* str=0000000001 */
  784.         MKVLC( 0x1, 11 ), /* str=00000000001 */
  785.     },
  786. };
  787. vlc_large_t x264_level_token[7][LEVEL_TABLE_SIZE];
  788. void x264_init_vlc_tables()
  789. {
  790.     int16_t level;
  791.     int i_suffix;
  792.     for( i_suffix = 0; i_suffix < 7; i_suffix++ )
  793.         for( level = -LEVEL_TABLE_SIZE/2; level < LEVEL_TABLE_SIZE/2; level++ )
  794.         {
  795.             int mask = level >> 15;
  796.             int abs_level = (level^mask)-mask;
  797.             int i_level_code = abs_level*2-mask-2;
  798.             int i_next = i_suffix;
  799.             vlc_large_t *vlc = &x264_level_token[i_suffix][level+LEVEL_TABLE_SIZE/2];
  800.             if( ( i_level_code >> i_suffix ) < 14 )
  801.             {
  802.                 vlc->i_size = (i_level_code >> i_suffix) + 1 + i_suffix;
  803.                 vlc->i_bits = (1<<i_suffix) + (i_level_code & ((1<<i_suffix)-1));
  804.             }
  805.             else if( i_suffix == 0 && i_level_code < 30 )
  806.             {
  807.                 vlc->i_size = 19;
  808.                 vlc->i_bits = (1<<4) + (i_level_code - 14);
  809.             }
  810.             else if( i_suffix > 0 && ( i_level_code >> i_suffix ) == 14 )
  811.             {
  812.                 vlc->i_size = 15 + i_suffix;
  813.                 vlc->i_bits = (1<<i_suffix) + (i_level_code & ((1<<i_suffix)-1));
  814.             }
  815.             else
  816.             {
  817.                 i_level_code -= 15 << i_suffix;
  818.                 if( i_suffix == 0 )
  819.                     i_level_code -= 15;
  820.                 vlc->i_size = 28;
  821.                 vlc->i_bits = (1<<12) + i_level_code;
  822.             }
  823.             if( i_next == 0 )
  824.                 i_next++;
  825.             if( abs_level > (3 << (i_next-1)) && i_next < 6 )
  826.                 i_next++;
  827.             vlc->i_next = i_next;
  828.         }
  829. }