• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

libavcodec/dv_vlc_data.h

Go to the documentation of this file.
00001 /*
00002  * VLC constants for DV codec
00003  * Copyright (c) 2002 Fabrice Bellard
00004  *
00005  * This file is part of FFmpeg.
00006  *
00007  * FFmpeg is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2.1 of the License, or (at your option) any later version.
00011  *
00012  * FFmpeg is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with FFmpeg; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00020  */
00021 
00027 #ifndef AVCODEC_DV_VLC_DATA_H
00028 #define AVCODEC_DV_VLC_DATA_H
00029 
00030 #include <stdint.h>
00031 
00032 #define NB_DV_VLC 409
00033 
00034 /*
00035  * There's a catch about the following three tables: the mapping they establish
00036  * between (run, level) and vlc is not 1-1. So you have to watch out for that
00037  * when building misc. tables. E.g. (1, 0) can be either 0x7cf or 0x1f82.
00038  */
00039 static const uint16_t dv_vlc_bits[409] = {
00040  0x0000, 0x0002, 0x0007, 0x0008, 0x0009, 0x0014, 0x0015, 0x0016,
00041  0x0017, 0x0030, 0x0031, 0x0032, 0x0033, 0x0068, 0x0069, 0x006a,
00042  0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x00e0, 0x00e1, 0x00e2,
00043  0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea,
00044  0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x01e0, 0x01e1, 0x01e2,
00045  0x01e3, 0x01e4, 0x01e5, 0x01e6, 0x01e7, 0x01e8, 0x01e9, 0x01ea,
00046  0x01eb, 0x01ec, 0x01ed, 0x01ee, 0x01ef, 0x03e0, 0x03e1, 0x03e2,
00047  0x03e3, 0x03e4, 0x03e5, 0x03e6, 0x07ce, 0x07cf, 0x07d0, 0x07d1,
00048  0x07d2, 0x07d3, 0x07d4, 0x07d5, 0x0fac, 0x0fad, 0x0fae, 0x0faf,
00049  0x0fb0, 0x0fb1, 0x0fb2, 0x0fb3, 0x0fb4, 0x0fb5, 0x0fb6, 0x0fb7,
00050  0x0fb8, 0x0fb9, 0x0fba, 0x0fbb, 0x0fbc, 0x0fbd, 0x0fbe, 0x0fbf,
00051  0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
00052  0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f,
00053  0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
00054  0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f,
00055  0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
00056  0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf,
00057  0x1fb0, 0x1fb1, 0x1fb2, 0x1fb3, 0x1fb4, 0x1fb5, 0x1fb6, 0x1fb7,
00058  0x1fb8, 0x1fb9, 0x1fba, 0x1fbb, 0x1fbc, 0x1fbd, 0x1fbe, 0x1fbf,
00059  0x7f00, 0x7f01, 0x7f02, 0x7f03, 0x7f04, 0x7f05, 0x7f06, 0x7f07,
00060  0x7f08, 0x7f09, 0x7f0a, 0x7f0b, 0x7f0c, 0x7f0d, 0x7f0e, 0x7f0f,
00061  0x7f10, 0x7f11, 0x7f12, 0x7f13, 0x7f14, 0x7f15, 0x7f16, 0x7f17,
00062  0x7f18, 0x7f19, 0x7f1a, 0x7f1b, 0x7f1c, 0x7f1d, 0x7f1e, 0x7f1f,
00063  0x7f20, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27,
00064  0x7f28, 0x7f29, 0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2e, 0x7f2f,
00065  0x7f30, 0x7f31, 0x7f32, 0x7f33, 0x7f34, 0x7f35, 0x7f36, 0x7f37,
00066  0x7f38, 0x7f39, 0x7f3a, 0x7f3b, 0x7f3c, 0x7f3d, 0x7f3e, 0x7f3f,
00067  0x7f40, 0x7f41, 0x7f42, 0x7f43, 0x7f44, 0x7f45, 0x7f46, 0x7f47,
00068  0x7f48, 0x7f49, 0x7f4a, 0x7f4b, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f4f,
00069  0x7f50, 0x7f51, 0x7f52, 0x7f53, 0x7f54, 0x7f55, 0x7f56, 0x7f57,
00070  0x7f58, 0x7f59, 0x7f5a, 0x7f5b, 0x7f5c, 0x7f5d, 0x7f5e, 0x7f5f,
00071  0x7f60, 0x7f61, 0x7f62, 0x7f63, 0x7f64, 0x7f65, 0x7f66, 0x7f67,
00072  0x7f68, 0x7f69, 0x7f6a, 0x7f6b, 0x7f6c, 0x7f6d, 0x7f6e, 0x7f6f,
00073  0x7f70, 0x7f71, 0x7f72, 0x7f73, 0x7f74, 0x7f75, 0x7f76, 0x7f77,
00074  0x7f78, 0x7f79, 0x7f7a, 0x7f7b, 0x7f7c, 0x7f7d, 0x7f7e, 0x7f7f,
00075  0x7f80, 0x7f81, 0x7f82, 0x7f83, 0x7f84, 0x7f85, 0x7f86, 0x7f87,
00076  0x7f88, 0x7f89, 0x7f8a, 0x7f8b, 0x7f8c, 0x7f8d, 0x7f8e, 0x7f8f,
00077  0x7f90, 0x7f91, 0x7f92, 0x7f93, 0x7f94, 0x7f95, 0x7f96, 0x7f97,
00078  0x7f98, 0x7f99, 0x7f9a, 0x7f9b, 0x7f9c, 0x7f9d, 0x7f9e, 0x7f9f,
00079  0x7fa0, 0x7fa1, 0x7fa2, 0x7fa3, 0x7fa4, 0x7fa5, 0x7fa6, 0x7fa7,
00080  0x7fa8, 0x7fa9, 0x7faa, 0x7fab, 0x7fac, 0x7fad, 0x7fae, 0x7faf,
00081  0x7fb0, 0x7fb1, 0x7fb2, 0x7fb3, 0x7fb4, 0x7fb5, 0x7fb6, 0x7fb7,
00082  0x7fb8, 0x7fb9, 0x7fba, 0x7fbb, 0x7fbc, 0x7fbd, 0x7fbe, 0x7fbf,
00083  0x7fc0, 0x7fc1, 0x7fc2, 0x7fc3, 0x7fc4, 0x7fc5, 0x7fc6, 0x7fc7,
00084  0x7fc8, 0x7fc9, 0x7fca, 0x7fcb, 0x7fcc, 0x7fcd, 0x7fce, 0x7fcf,
00085  0x7fd0, 0x7fd1, 0x7fd2, 0x7fd3, 0x7fd4, 0x7fd5, 0x7fd6, 0x7fd7,
00086  0x7fd8, 0x7fd9, 0x7fda, 0x7fdb, 0x7fdc, 0x7fdd, 0x7fde, 0x7fdf,
00087  0x7fe0, 0x7fe1, 0x7fe2, 0x7fe3, 0x7fe4, 0x7fe5, 0x7fe6, 0x7fe7,
00088  0x7fe8, 0x7fe9, 0x7fea, 0x7feb, 0x7fec, 0x7fed, 0x7fee, 0x7fef,
00089  0x7ff0, 0x7ff1, 0x7ff2, 0x7ff3, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7,
00090  0x7ff8, 0x7ff9, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffd, 0x7ffe, 0x7fff,
00091  0x0006,
00092 };
00093 
00094 static const uint8_t dv_vlc_len[409] = {
00095   2,  3,  4,  4,  4,  5,  5,  5,
00096   5,  6,  6,  6,  6,  7,  7,  7,
00097   7,  7,  7,  7,  7,  8,  8,  8,
00098   8,  8,  8,  8,  8,  8,  8,  8,
00099   8,  8,  8,  8,  8,  9,  9,  9,
00100   9,  9,  9,  9,  9,  9,  9,  9,
00101   9,  9,  9,  9,  9, 10, 10, 10,
00102  10, 10, 10, 10, 11, 11, 11, 11,
00103  11, 11, 11, 11, 12, 12, 12, 12,
00104  12, 12, 12, 12, 12, 12, 12, 12,
00105  12, 12, 12, 12, 12, 12, 12, 12,
00106  13, 13, 13, 13, 13, 13, 13, 13,
00107  13, 13, 13, 13, 13, 13, 13, 13,
00108  13, 13, 13, 13, 13, 13, 13, 13,
00109  13, 13, 13, 13, 13, 13, 13, 13,
00110  13, 13, 13, 13, 13, 13, 13, 13,
00111  13, 13, 13, 13, 13, 13, 13, 13,
00112  13, 13, 13, 13, 13, 13, 13, 13,
00113  13, 13, 13, 13, 13, 13, 13, 13,
00114  15, 15, 15, 15, 15, 15, 15, 15,
00115  15, 15, 15, 15, 15, 15, 15, 15,
00116  15, 15, 15, 15, 15, 15, 15, 15,
00117  15, 15, 15, 15, 15, 15, 15, 15,
00118  15, 15, 15, 15, 15, 15, 15, 15,
00119  15, 15, 15, 15, 15, 15, 15, 15,
00120  15, 15, 15, 15, 15, 15, 15, 15,
00121  15, 15, 15, 15, 15, 15, 15, 15,
00122  15, 15, 15, 15, 15, 15, 15, 15,
00123  15, 15, 15, 15, 15, 15, 15, 15,
00124  15, 15, 15, 15, 15, 15, 15, 15,
00125  15, 15, 15, 15, 15, 15, 15, 15,
00126  15, 15, 15, 15, 15, 15, 15, 15,
00127  15, 15, 15, 15, 15, 15, 15, 15,
00128  15, 15, 15, 15, 15, 15, 15, 15,
00129  15, 15, 15, 15, 15, 15, 15, 15,
00130  15, 15, 15, 15, 15, 15, 15, 15,
00131  15, 15, 15, 15, 15, 15, 15, 15,
00132  15, 15, 15, 15, 15, 15, 15, 15,
00133  15, 15, 15, 15, 15, 15, 15, 15,
00134  15, 15, 15, 15, 15, 15, 15, 15,
00135  15, 15, 15, 15, 15, 15, 15, 15,
00136  15, 15, 15, 15, 15, 15, 15, 15,
00137  15, 15, 15, 15, 15, 15, 15, 15,
00138  15, 15, 15, 15, 15, 15, 15, 15,
00139  15, 15, 15, 15, 15, 15, 15, 15,
00140  15, 15, 15, 15, 15, 15, 15, 15,
00141  15, 15, 15, 15, 15, 15, 15, 15,
00142  15, 15, 15, 15, 15, 15, 15, 15,
00143  15, 15, 15, 15, 15, 15, 15, 15,
00144  15, 15, 15, 15, 15, 15, 15, 15,
00145  15, 15, 15, 15, 15, 15, 15, 15,
00146   4,
00147 };
00148 
00149 static const uint8_t dv_vlc_run[409] = {
00150   0,  0,  1,  0,  0,  2,  1,  0,
00151   0,  3,  4,  0,  0,  5,  6,  2,
00152   1,  1,  0,  0,  0,  7,  8,  9,
00153  10,  3,  4,  2,  1,  1,  1,  0,
00154   0,  0,  0,  0,  0, 11, 12, 13,
00155  14,  5,  6,  3,  4,  2,  2,  1,
00156   0,  0,  0,  0,  0,  5,  3,  3,
00157   2,  1,  1,  1,  0,  1,  6,  4,
00158   3,  1,  1,  1,  2,  3,  4,  5,
00159   7,  8,  9, 10,  7,  8,  4,  3,
00160   2,  2,  2,  2,  2,  1,  1,  1,
00161   0,  1,  2,  3,  4,  5,  6,  7,
00162   8,  9, 10, 11, 12, 13, 14, 15,
00163  16, 17, 18, 19, 20, 21, 22, 23,
00164  24, 25, 26, 27, 28, 29, 30, 31,
00165  32, 33, 34, 35, 36, 37, 38, 39,
00166  40, 41, 42, 43, 44, 45, 46, 47,
00167  48, 49, 50, 51, 52, 53, 54, 55,
00168  56, 57, 58, 59, 60, 61, 62, 63,
00169   0,  0,  0,  0,  0,  0,  0,  0,
00170   0,  0,  0,  0,  0,  0,  0,  0,
00171   0,  0,  0,  0,  0,  0,  0,  0,
00172   0,  0,  0,  0,  0,  0,  0,  0,
00173   0,  0,  0,  0,  0,  0,  0,  0,
00174   0,  0,  0,  0,  0,  0,  0,  0,
00175   0,  0,  0,  0,  0,  0,  0,  0,
00176   0,  0,  0,  0,  0,  0,  0,  0,
00177   0,  0,  0,  0,  0,  0,  0,  0,
00178   0,  0,  0,  0,  0,  0,  0,  0,
00179   0,  0,  0,  0,  0,  0,  0,  0,
00180   0,  0,  0,  0,  0,  0,  0,  0,
00181   0,  0,  0,  0,  0,  0,  0,  0,
00182   0,  0,  0,  0,  0,  0,  0,  0,
00183   0,  0,  0,  0,  0,  0,  0,  0,
00184   0,  0,  0,  0,  0,  0,  0,  0,
00185   0,  0,  0,  0,  0,  0,  0,  0,
00186   0,  0,  0,  0,  0,  0,  0,  0,
00187   0,  0,  0,  0,  0,  0,  0,  0,
00188   0,  0,  0,  0,  0,  0,  0,  0,
00189   0,  0,  0,  0,  0,  0,  0,  0,
00190   0,  0,  0,  0,  0,  0,  0,  0,
00191   0,  0,  0,  0,  0,  0,  0,  0,
00192   0,  0,  0,  0,  0,  0,  0,  0,
00193   0,  0,  0,  0,  0,  0,  0,  0,
00194   0,  0,  0,  0,  0,  0,  0,  0,
00195   0,  0,  0,  0,  0,  0,  0,  0,
00196   0,  0,  0,  0,  0,  0,  0,  0,
00197   0,  0,  0,  0,  0,  0,  0,  0,
00198   0,  0,  0,  0,  0,  0,  0,  0,
00199   0,  0,  0,  0,  0,  0,  0,  0,
00200   0,  0,  0,  0,  0,  0,  0,  0,
00201 127,
00202 };
00203 
00204 static const uint8_t dv_vlc_level[409] = {
00205    1,   2,   1,   3,   4,   1,   2,   5,
00206    6,   1,   1,   7,   8,   1,   1,   2,
00207    3,   4,   9,  10,  11,   1,   1,   1,
00208    1,   2,   2,   3,   5,   6,   7,  12,
00209   13,  14,  15,  16,  17,   1,   1,   1,
00210    1,   2,   2,   3,   3,   4,   5,   8,
00211   18,  19,  20,  21,  22,   3,   4,   5,
00212    6,   9,  10,  11,   0,   0,   3,   4,
00213    6,  12,  13,  14,   0,   0,   0,   0,
00214    2,   2,   2,   2,   3,   3,   5,   7,
00215    7,   8,   9,  10,  11,  15,  16,  17,
00216    0,   0,   0,   0,   0,   0,   0,   0,
00217    0,   0,   0,   0,   0,   0,   0,   0,
00218    0,   0,   0,   0,   0,   0,   0,   0,
00219    0,   0,   0,   0,   0,   0,   0,   0,
00220    0,   0,   0,   0,   0,   0,   0,   0,
00221    0,   0,   0,   0,   0,   0,   0,   0,
00222    0,   0,   0,   0,   0,   0,   0,   0,
00223    0,   0,   0,   0,   0,   0,   0,   0,
00224    0,   1,   2,   3,   4,   5,   6,   7,
00225    8,   9,  10,  11,  12,  13,  14,  15,
00226   16,  17,  18,  19,  20,  21,  22,  23,
00227   24,  25,  26,  27,  28,  29,  30,  31,
00228   32,  33,  34,  35,  36,  37,  38,  39,
00229   40,  41,  42,  43,  44,  45,  46,  47,
00230   48,  49,  50,  51,  52,  53,  54,  55,
00231   56,  57,  58,  59,  60,  61,  62,  63,
00232   64,  65,  66,  67,  68,  69,  70,  71,
00233   72,  73,  74,  75,  76,  77,  78,  79,
00234   80,  81,  82,  83,  84,  85,  86,  87,
00235   88,  89,  90,  91,  92,  93,  94,  95,
00236   96,  97,  98,  99, 100, 101, 102, 103,
00237  104, 105, 106, 107, 108, 109, 110, 111,
00238  112, 113, 114, 115, 116, 117, 118, 119,
00239  120, 121, 122, 123, 124, 125, 126, 127,
00240  128, 129, 130, 131, 132, 133, 134, 135,
00241  136, 137, 138, 139, 140, 141, 142, 143,
00242  144, 145, 146, 147, 148, 149, 150, 151,
00243  152, 153, 154, 155, 156, 157, 158, 159,
00244  160, 161, 162, 163, 164, 165, 166, 167,
00245  168, 169, 170, 171, 172, 173, 174, 175,
00246  176, 177, 178, 179, 180, 181, 182, 183,
00247  184, 185, 186, 187, 188, 189, 190, 191,
00248  192, 193, 194, 195, 196, 197, 198, 199,
00249  200, 201, 202, 203, 204, 205, 206, 207,
00250  208, 209, 210, 211, 212, 213, 214, 215,
00251  216, 217, 218, 219, 220, 221, 222, 223,
00252  224, 225, 226, 227, 228, 229, 230, 231,
00253  232, 233, 234, 235, 236, 237, 238, 239,
00254  240, 241, 242, 243, 244, 245, 246, 247,
00255  248, 249, 250, 251, 252, 253, 254, 255,
00256    0,
00257 };
00258 
00259 #endif /* AVCODEC_DV_VLC_DATA_H */

Generated on Fri Sep 16 2011 17:17:35 for FFmpeg by  doxygen 1.7.1