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

libavcodec/rv40data.h

Go to the documentation of this file.
00001 /*
00002  * RealVideo 4 decoder
00003  * copyright (c) 2007 Konstantin Shishkov
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_RV40DATA_H
00028 #define AVCODEC_RV40DATA_H
00029 
00030 #include <stdint.h>
00031 
00036 static const int rv40_standard_widths[]   = { 160, 172, 240, 320, 352, 640, 704, 0};
00037 static const int rv40_standard_heights[]  = { 120, 132, 144, 240, 288, 480, -8, -10, 180, 360, 576, 0};
00039 
00040 #define MODE2_PATTERNS_NUM 20
00041 
00047 static const uint16_t rv40_aic_table_index[MODE2_PATTERNS_NUM] = {
00048  0x000, 0x100, 0x200,
00049  0x011, 0x111, 0x211, 0x511, 0x611,
00050  0x022, 0x122, 0x222, 0x722,
00051  0x272, 0x227,
00052  0x822, 0x282, 0x228,
00053  0x112, 0x116, 0x221
00054 };
00055 
00060 static const uint8_t rv40_luma_dc_quant[2][32] = {
00061  {  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
00062    16, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 22, 22, 22, 22 },
00063  {  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
00064    16, 17, 18, 19, 20, 20, 21, 21, 22, 23, 23, 23, 24, 24, 24, 24 }
00065 };
00066 
00074 static const uint8_t rv40_dither_l[16] = {
00075     0x40, 0x50, 0x20, 0x60, 0x30, 0x50, 0x40, 0x30,
00076     0x50, 0x40, 0x50, 0x30, 0x60, 0x20, 0x50, 0x40
00077 };
00081 static const uint8_t rv40_dither_r[16] = {
00082     0x40, 0x30, 0x60, 0x20, 0x50, 0x30, 0x30, 0x40,
00083     0x40, 0x40, 0x50, 0x30, 0x20, 0x60, 0x30, 0x40
00084 };
00085 
00087 static const uint8_t rv40_alpha_tab[32] = {
00088     128, 128, 128, 128, 128, 128, 128, 128,
00089     128, 128, 122,  96,  75,  59,  47,  37,
00090      29,  23,  18,  15,  13,  11,  10,   9,
00091       8,   7,   6,   5,   4,   3,   2,   1
00092 };
00094 static const uint8_t rv40_beta_tab[32] = {
00095      0,  0,  0,  0,  0,  0,  0,  0,  3,  3,  3,  4,  4,  4,  6,  6,
00096      6,  7,  8,  8,  9,  9, 10, 10, 11, 11, 12, 13, 14, 15, 16, 17
00097 };
00099 static const uint8_t rv40_filter_clip_tbl[3][32] = {
00100     {
00101         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00102         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
00103     },
00104     {
00105         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
00106         1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 5, 5
00107     },
00108     {
00109         0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
00110         1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 7, 8, 9
00111     }
00112 }; // end loopfilter group
00114 
00115 #endif /* AVCODEC_RV40DATA_H */

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