1cabdff1aSopenharmony_ci/* 2cabdff1aSopenharmony_ci * RealVideo 3 decoder 3cabdff1aSopenharmony_ci * copyright (c) 2007 Konstantin Shishkov 4cabdff1aSopenharmony_ci * 5cabdff1aSopenharmony_ci * This file is part of FFmpeg. 6cabdff1aSopenharmony_ci * 7cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or 8cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public 9cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either 10cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version. 11cabdff1aSopenharmony_ci * 12cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful, 13cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of 14cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15cabdff1aSopenharmony_ci * Lesser General Public License for more details. 16cabdff1aSopenharmony_ci * 17cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public 18cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software 19cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20cabdff1aSopenharmony_ci */ 21cabdff1aSopenharmony_ci 22cabdff1aSopenharmony_ci/** 23cabdff1aSopenharmony_ci * @file 24cabdff1aSopenharmony_ci * miscellaneous RV30 tables 25cabdff1aSopenharmony_ci */ 26cabdff1aSopenharmony_ci 27cabdff1aSopenharmony_ci#ifndef AVCODEC_RV30DATA_H 28cabdff1aSopenharmony_ci#define AVCODEC_RV30DATA_H 29cabdff1aSopenharmony_ci 30cabdff1aSopenharmony_ci#include <stdint.h> 31cabdff1aSopenharmony_ci 32cabdff1aSopenharmony_ci/** DC quantizer mapping for RV30 */ 33cabdff1aSopenharmony_cistatic const uint8_t rv30_luma_dc_quant[32] = { 34cabdff1aSopenharmony_ci 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 35cabdff1aSopenharmony_ci 16, 17, 18, 19, 20, 21, 22, 22, 22, 23, 23, 23, 24, 24, 25, 25 36cabdff1aSopenharmony_ci}; 37cabdff1aSopenharmony_ci 38cabdff1aSopenharmony_ci/** 39cabdff1aSopenharmony_ci * This table is used for storing the differences 40cabdff1aSopenharmony_ci * between the predicted and the real intra type. 41cabdff1aSopenharmony_ci */ 42cabdff1aSopenharmony_cistatic const uint8_t rv30_itype_code[9*9*2] = { 43cabdff1aSopenharmony_ci 0, 0, 0, 1, 1, 0, 1, 1, 0, 2, 2, 0, 0, 3, 3, 0, 1, 2, 44cabdff1aSopenharmony_ci 2, 1, 0, 4, 4, 0, 3, 1, 1, 3, 0, 5, 5, 0, 2, 2, 1, 4, 45cabdff1aSopenharmony_ci 4, 1, 0, 6, 3, 2, 1, 5, 2, 3, 5, 1, 6, 0, 0, 7, 4, 2, 46cabdff1aSopenharmony_ci 2, 4, 3, 3, 6, 1, 1, 6, 7, 0, 0, 8, 5, 2, 4, 3, 2, 5, 47cabdff1aSopenharmony_ci 3, 4, 1, 7, 4, 4, 7, 1, 8, 0, 6, 2, 3, 5, 5, 3, 2, 6, 48cabdff1aSopenharmony_ci 1, 8, 2, 7, 7, 2, 8, 1, 5, 4, 4, 5, 3, 6, 6, 3, 8, 2, 49cabdff1aSopenharmony_ci 4, 6, 5, 5, 6, 4, 2, 8, 7, 3, 3, 7, 6, 5, 5, 6, 7, 4, 50cabdff1aSopenharmony_ci 4, 7, 8, 3, 3, 8, 7, 5, 8, 4, 5, 7, 4, 8, 6, 6, 7, 6, 51cabdff1aSopenharmony_ci 5, 8, 8, 5, 6, 7, 8, 6, 7, 7, 6, 8, 8, 7, 7, 8, 8, 8, 52cabdff1aSopenharmony_ci}; 53cabdff1aSopenharmony_ci 54cabdff1aSopenharmony_ci/** 55cabdff1aSopenharmony_ci * This table is used for retrieving the current intra type 56cabdff1aSopenharmony_ci * based on its neighbors and adjustment provided by 57cabdff1aSopenharmony_ci * code read and decoded before. 58cabdff1aSopenharmony_ci * 59cabdff1aSopenharmony_ci * This is really a three-dimensional matrix with dimensions 60cabdff1aSopenharmony_ci * [-1..9][-1..9][0..9]. The first and second coordinates are 61cabdff1aSopenharmony_ci * determined by the top and left neighbors (-1 if unavailable). 62cabdff1aSopenharmony_ci */ 63cabdff1aSopenharmony_cistatic const uint8_t rv30_itype_from_context[900] = { 64cabdff1aSopenharmony_ci 0, 9, 9, 9, 9, 9, 9, 9, 9, 65cabdff1aSopenharmony_ci 0, 2, 9, 9, 9, 9, 9, 9, 9, 66cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 67cabdff1aSopenharmony_ci 2, 0, 9, 9, 9, 9, 9, 9, 9, 68cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 69cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 70cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 71cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 72cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 73cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 74cabdff1aSopenharmony_ci 75cabdff1aSopenharmony_ci 0, 1, 9, 9, 9, 9, 9, 9, 9, 76cabdff1aSopenharmony_ci 0, 2, 1, 6, 4, 8, 5, 7, 3, 77cabdff1aSopenharmony_ci 1, 0, 2, 6, 5, 4, 3, 8, 7, 78cabdff1aSopenharmony_ci 2, 8, 0, 1, 7, 4, 3, 6, 5, 79cabdff1aSopenharmony_ci 2, 0, 1, 3, 8, 5, 4, 7, 6, 80cabdff1aSopenharmony_ci 2, 0, 1, 4, 6, 7, 8, 3, 5, 81cabdff1aSopenharmony_ci 0, 1, 5, 2, 6, 3, 8, 4, 7, 82cabdff1aSopenharmony_ci 0, 1, 6, 2, 4, 7, 5, 8, 3, 83cabdff1aSopenharmony_ci 2, 7, 0, 1, 4, 8, 6, 3, 5, 84cabdff1aSopenharmony_ci 2, 8, 0, 1, 7, 3, 4, 5, 6, 85cabdff1aSopenharmony_ci 86cabdff1aSopenharmony_ci 1, 0, 9, 9, 9, 9, 9, 9, 9, 87cabdff1aSopenharmony_ci 1, 2, 5, 6, 3, 0, 4, 8, 7, 88cabdff1aSopenharmony_ci 1, 6, 2, 5, 3, 0, 4, 8, 7, 89cabdff1aSopenharmony_ci 2, 1, 7, 6, 8, 3, 5, 0, 4, 90cabdff1aSopenharmony_ci 1, 2, 5, 3, 6, 8, 4, 7, 0, 91cabdff1aSopenharmony_ci 1, 6, 2, 0, 4, 5, 8, 7, 3, 92cabdff1aSopenharmony_ci 1, 5, 2, 6, 3, 8, 4, 0, 7, 93cabdff1aSopenharmony_ci 1, 6, 0, 2, 4, 5, 7, 3, 8, 94cabdff1aSopenharmony_ci 2, 1, 7, 6, 0, 8, 5, 4, 3, 95cabdff1aSopenharmony_ci 1, 2, 7, 8, 3, 4, 5, 6, 0, 96cabdff1aSopenharmony_ci 97cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 98cabdff1aSopenharmony_ci 0, 2, 1, 8, 7, 6, 5, 4, 3, 99cabdff1aSopenharmony_ci 1, 2, 0, 6, 5, 7, 4, 8, 3, 100cabdff1aSopenharmony_ci 2, 8, 7, 1, 0, 6, 4, 3, 5, 101cabdff1aSopenharmony_ci 2, 0, 8, 1, 3, 7, 5, 4, 6, 102cabdff1aSopenharmony_ci 2, 0, 4, 1, 7, 8, 6, 3, 5, 103cabdff1aSopenharmony_ci 2, 0, 1, 5, 8, 4, 6, 7, 3, 104cabdff1aSopenharmony_ci 2, 0, 6, 1, 4, 7, 8, 5, 3, 105cabdff1aSopenharmony_ci 2, 7, 8, 1, 0, 5, 4, 6, 3, 106cabdff1aSopenharmony_ci 2, 8, 7, 1, 0, 4, 3, 6, 5, 107cabdff1aSopenharmony_ci 108cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 109cabdff1aSopenharmony_ci 0, 2, 1, 3, 5, 8, 6, 4, 7, 110cabdff1aSopenharmony_ci 1, 0, 2, 5, 3, 6, 4, 8, 7, 111cabdff1aSopenharmony_ci 2, 8, 1, 0, 3, 5, 7, 6, 4, 112cabdff1aSopenharmony_ci 3, 2, 5, 8, 1, 4, 6, 7, 0, 113cabdff1aSopenharmony_ci 4, 2, 0, 6, 1, 5, 8, 3, 7, 114cabdff1aSopenharmony_ci 5, 3, 1, 2, 8, 6, 4, 0, 7, 115cabdff1aSopenharmony_ci 1, 6, 0, 2, 4, 5, 8, 3, 7, 116cabdff1aSopenharmony_ci 2, 7, 0, 1, 5, 4, 8, 6, 3, 117cabdff1aSopenharmony_ci 2, 8, 3, 5, 1, 0, 7, 6, 4, 118cabdff1aSopenharmony_ci 119cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 120cabdff1aSopenharmony_ci 2, 0, 6, 1, 4, 7, 5, 8, 3, 121cabdff1aSopenharmony_ci 1, 6, 2, 0, 4, 5, 3, 7, 8, 122cabdff1aSopenharmony_ci 2, 8, 7, 6, 4, 0, 1, 5, 3, 123cabdff1aSopenharmony_ci 4, 2, 1, 0, 6, 8, 3, 5, 7, 124cabdff1aSopenharmony_ci 4, 2, 6, 0, 1, 5, 7, 8, 3, 125cabdff1aSopenharmony_ci 1, 2, 5, 0, 6, 3, 4, 7, 8, 126cabdff1aSopenharmony_ci 6, 4, 0, 1, 2, 7, 5, 3, 8, 127cabdff1aSopenharmony_ci 2, 7, 4, 6, 0, 1, 8, 5, 3, 128cabdff1aSopenharmony_ci 2, 8, 7, 4, 6, 1, 3, 5, 0, 129cabdff1aSopenharmony_ci 130cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 131cabdff1aSopenharmony_ci 5, 1, 2, 3, 6, 8, 0, 4, 7, 132cabdff1aSopenharmony_ci 1, 5, 6, 3, 2, 0, 4, 8, 7, 133cabdff1aSopenharmony_ci 2, 1, 5, 3, 6, 8, 7, 4, 0, 134cabdff1aSopenharmony_ci 5, 3, 1, 2, 6, 8, 4, 7, 0, 135cabdff1aSopenharmony_ci 1, 6, 2, 4, 5, 8, 0, 3, 7, 136cabdff1aSopenharmony_ci 5, 1, 3, 6, 2, 0, 8, 4, 7, 137cabdff1aSopenharmony_ci 1, 6, 5, 2, 0, 4, 3, 7, 8, 138cabdff1aSopenharmony_ci 2, 7, 1, 6, 5, 0, 8, 3, 4, 139cabdff1aSopenharmony_ci 2, 5, 1, 3, 6, 8, 4, 0, 7, 140cabdff1aSopenharmony_ci 141cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 142cabdff1aSopenharmony_ci 1, 6, 2, 0, 5, 4, 3, 7, 8, 143cabdff1aSopenharmony_ci 1, 6, 5, 4, 2, 3, 0, 7, 8, 144cabdff1aSopenharmony_ci 2, 1, 6, 7, 4, 8, 5, 3, 0, 145cabdff1aSopenharmony_ci 2, 1, 6, 5, 8, 4, 3, 0, 7, 146cabdff1aSopenharmony_ci 6, 4, 1, 2, 0, 5, 7, 8, 3, 147cabdff1aSopenharmony_ci 1, 6, 5, 2, 3, 0, 4, 8, 7, 148cabdff1aSopenharmony_ci 6, 1, 4, 0, 2, 7, 5, 3, 8, 149cabdff1aSopenharmony_ci 2, 7, 4, 6, 1, 5, 0, 8, 3, 150cabdff1aSopenharmony_ci 2, 1, 6, 8, 4, 7, 3, 5, 0, 151cabdff1aSopenharmony_ci 152cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 153cabdff1aSopenharmony_ci 2, 0, 4, 7, 6, 1, 8, 5, 3, 154cabdff1aSopenharmony_ci 6, 1, 2, 0, 4, 7, 5, 8, 3, 155cabdff1aSopenharmony_ci 2, 7, 8, 0, 1, 6, 4, 3, 5, 156cabdff1aSopenharmony_ci 2, 4, 0, 8, 3, 1, 7, 6, 5, 157cabdff1aSopenharmony_ci 4, 2, 7, 0, 6, 1, 8, 5, 3, 158cabdff1aSopenharmony_ci 2, 1, 0, 8, 5, 6, 7, 4, 3, 159cabdff1aSopenharmony_ci 2, 6, 4, 1, 7, 0, 5, 8, 3, 160cabdff1aSopenharmony_ci 2, 7, 4, 0, 8, 6, 1, 5, 3, 161cabdff1aSopenharmony_ci 2, 8, 7, 4, 1, 0, 3, 6, 5, 162cabdff1aSopenharmony_ci 163cabdff1aSopenharmony_ci 9, 9, 9, 9, 9, 9, 9, 9, 9, 164cabdff1aSopenharmony_ci 2, 0, 8, 1, 3, 4, 6, 5, 7, 165cabdff1aSopenharmony_ci 1, 2, 0, 6, 8, 5, 7, 3, 4, 166cabdff1aSopenharmony_ci 2, 8, 7, 1, 0, 3, 6, 5, 4, 167cabdff1aSopenharmony_ci 8, 3, 2, 5, 1, 0, 4, 7, 6, 168cabdff1aSopenharmony_ci 2, 0, 4, 8, 5, 1, 7, 6, 3, 169cabdff1aSopenharmony_ci 2, 1, 0, 8, 5, 3, 6, 4, 7, 170cabdff1aSopenharmony_ci 2, 1, 6, 0, 8, 4, 5, 7, 3, 171cabdff1aSopenharmony_ci 2, 7, 8, 4, 0, 6, 1, 5, 3, 172cabdff1aSopenharmony_ci 2, 8, 3, 0, 7, 4, 1, 6, 5, 173cabdff1aSopenharmony_ci}; 174cabdff1aSopenharmony_ci 175cabdff1aSopenharmony_ci/** 176cabdff1aSopenharmony_ci * Loop filter limits are taken from this table. 177cabdff1aSopenharmony_ci */ 178cabdff1aSopenharmony_cistatic const uint8_t rv30_loop_filt_lim[32] = { 179cabdff1aSopenharmony_ci 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5 180cabdff1aSopenharmony_ci}; 181cabdff1aSopenharmony_ci#endif /* AVCODEC_RV30DATA_H */ 182