vlc_dec_tab.h revision 3306cfee3bf38ab207a0504e49c2d492bb73ffbf
1/* ------------------------------------------------------------------
2 * Copyright (C) 1998-2009 PacketVideo
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13 * express or implied.
14 * See the License for the specific language governing permissions
15 * and limitations under the License.
16 * -------------------------------------------------------------------
17 */
18/*
19*     -------------------------------------------------------------------   *
20*                    MPEG-4 Simple Profile Video Decoder                    *
21*     -------------------------------------------------------------------   *
22*
23* This software module was originally developed by
24*
25*   Paulo Nunes (IST / ACTS-MoMuSyS)
26*
27* and edited by
28*
29*   Robert Danielsen (Telenor / ACTS-MoMuSyS)
30*
31* in the course of development of the MPEG-4 Video (ISO/IEC 14496-2) standard.
32* This software module is an implementation of a part of one or more MPEG-4
33* Video (ISO/IEC 14496-2) tools as specified by the MPEG-4 Video (ISO/IEC
34* 14496-2) standard.
35*
36* ISO/IEC gives users of the MPEG-4 Video (ISO/IEC 14496-2) standard free
37* license to this software module or modifications thereof for use in hardware
38* or software products claiming conformance to the MPEG-4 Video (ISO/IEC
39* 14496-2) standard.
40*
41* Those intending to use this software module in hardware or software products
42* are advised that its use may infringe existing patents. The original
43* developer of this software module and his/her company, the subsequent
44* editors and their companies, and ISO/IEC have no liability for use of this
45* software module or modifications thereof in an implementation. Copyright is
46* not released for non MPEG-4 Video (ISO/IEC 14496-2) Standard conforming
47* products.
48*
49* ACTS-MoMuSys partners retain full right to use the code for his/her own
50* purpose, assign or donate the code to a third party and to inhibit third
51* parties from using the code for non MPEG-4 Video (ISO/IEC 14496-2) Standard
52* conforming products. This copyright notice must be included in all copies or
53* derivative works.
54*
55* Copyright (c) 1996
56*
57*****************************************************************************
58***********************************************************HeaderBegin*******
59*
60* File: vlc_dec_tab.h
61*
62* Author:   Paulo Nunes (IST) - Paulo.Nunes@it.ist.utl.pt
63* Created:  1-Mar-96
64*
65* Description: This file contains the VLC tables for module which deals
66*       with VLC decoding.
67*
68* Notes:    This file was created based on tmndecode
69*       Written by Karl Olav Lillevold <kol@nta.no>,
70*       1995 Telenor R&D.
71*       Donated to the Momusys-project as background code by
72*       Telenor.
73*
74*       based on mpeg2decode, (C) 1994, MPEG Software Simulation Group
75*       and mpeg2play, (C) 1994 Stefan Eckart
76*                         <stefan@lis.e-technik.tu-muenchen.de>
77*
78*
79* Modified:  9-May-96 Paulo Nunes: Reformatted. New headers.
80*       14-May-96 Paulo Nunes: Changed TMNMVtabs according to VM2.1.
81*   04.11.96 Robert Danielsen: Added three new tables for coding
82*           of Intra luminance coefficients (VM 4.0)
83*      01.05.97 Luis Ducla-Soares: added VM7.0 Reversible VLC tables (RVLC).
84*      13.05.97 Minhua Zhou: added VlC tables for CBPYtab2 CBPYtab3,
85*   revised  CBPYtab
86*
87***********************************************************HeaderEnd*********
88
89This module is a header file for "vlc_decode.c".  The table data actually
90resides in "vlc_tab.c".
91
92
93------------------------------------------------------------------------------
94*/
95
96/*----------------------------------------------------------------------------
97; CONTINUE ONLY IF NOT ALREADY DEFINED
98----------------------------------------------------------------------------*/
99#ifndef vlc_dec_tab_H
100#define vlc_dec_tab_H
101
102/*----------------------------------------------------------------------------
103; INCLUDES
104----------------------------------------------------------------------------*/
105#include "mp4def.h"
106
107/*----------------------------------------------------------------------------
108; MACROS
109; Define module specific macros here
110----------------------------------------------------------------------------*/
111
112
113/*----------------------------------------------------------------------------
114; DEFINES
115; Include all pre-processor statements here.
116----------------------------------------------------------------------------*/
117
118
119/*----------------------------------------------------------------------------
120; EXTERNAL VARIABLES REFERENCES
121; Declare variables used in this module but defined elsewhere
122----------------------------------------------------------------------------*/
123#ifdef __cplusplus
124extern "C"
125{
126#endif
127
128    extern const VLCshorttab PV_TMNMVtab0[];
129
130    extern const VLCshorttab PV_TMNMVtab1[];
131
132    extern const VLCshorttab PV_TMNMVtab2[];
133
134    extern const VLCshorttab PV_MCBPCtab[];
135
136#ifdef PV_ANNEX_IJKT_SUPPORT
137    extern const VLCshorttab PV_MCBPCtab1[];
138#endif
139    extern const VLCshorttab PV_MCBPCtabintra[];
140
141    /* Table for separate mode MCBPC, for coding DQUANT-flag and CBPC */
142
143    extern const VLCshorttab MCBPCtab_sep[32];
144
145    extern const VLCshorttab PV_CBPYtab[48];
146
147    extern const VLCshorttab CBPYtab2[16];
148
149    extern const VLCshorttab CBPYtab3[64];
150
151    extern const VLCtab2 PV_DCT3Dtab0[];
152
153
154    extern const VLCtab2 PV_DCT3Dtab1[];
155
156
157    extern const VLCtab2 PV_DCT3Dtab2[];
158
159    /* New tables for Intra luminance blocks */
160
161    extern const VLCtab2 PV_DCT3Dtab3[];
162
163    extern const VLCtab2 PV_DCT3Dtab4[];
164
165    extern const VLCtab2 PV_DCT3Dtab5[];
166#ifdef PV_ANNEX_IJKT_SUPPORT
167    /* Annex I tables */
168    extern const VLCtab2 PV_DCT3Dtab6[];
169
170    extern const VLCtab2 PV_DCT3Dtab7[];
171
172    extern const VLCtab2 PV_DCT3Dtab8[];
173#endif
174    /* RVLC tables */
175    extern const int ptrRvlcTab[];
176
177    extern const VLCtab2 RvlcDCTtabIntra[];
178
179    extern const VLCtab2 RvlcDCTtabInter[];
180
181    /*----------------------------------------------------------------------------
182    ; SIMPLE TYPEDEF'S
183    ----------------------------------------------------------------------------*/
184
185
186    /*----------------------------------------------------------------------------
187    ; ENUMERATED TYPEDEF'S
188    ----------------------------------------------------------------------------*/
189
190    /*----------------------------------------------------------------------------
191    ; STRUCTURES TYPEDEF'S
192    ----------------------------------------------------------------------------*/
193
194    /*----------------------------------------------------------------------------
195    ; GLOBAL FUNCTION DEFINITIONS
196    ; Function Prototype declaration
197    ----------------------------------------------------------------------------*/
198
199
200    /*----------------------------------------------------------------------------
201    ; END
202    ----------------------------------------------------------------------------*/
203#endif
204
205#ifdef __cplusplus
206}
207#endif
208
209
210
211
212
213
214
215
216