Libav
|
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 */