# Dirac - A Video Codec

Created by the British Broadcasting Corporation.

common_types.h
Go to the documentation of this file.
1 /* ***** BEGIN LICENSE BLOCK *****
2 *
3 * $Id: common_types.h,v 1.21 2008/11/06 04:53:36 asuraparaju Exp $ $Name: Dirac_1_0_2 $
4 *
5 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
6 *
7 * The contents of this file are subject to the Mozilla Public License
8 * Version 1.1 (the "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 * http://www.mozilla.org/MPL/
11 *
12 * Software distributed under the License is distributed on an "AS IS" basis,
13 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
14 * the specific language governing rights and limitations under the License.
15 *
16 * The Original Code is BBC Research and Development code.
17 *
18 * The Initial Developer of the Original Code is the British Broadcasting
19 * Corporation.
20 * Portions created by the Initial Developer are Copyright (C) 2004.
21 * All Rights Reserved.
22 *
23 * Contributor(s): Thomas Davies (Original Author),
24 * Scott R Ladd,
25 * Tim Borer
26 * Andrew Kennedy,
27 * Anuradha Suraparaju
28 *
29 * Alternatively, the contents of this file may be used under the terms of
30 * the GNU General Public License Version 2 (the "GPL"), or the GNU Lesser
31 * Public License Version 2.1 (the "LGPL"), in which case the provisions of
32 * the GPL or the LGPL are applicable instead of those above. If you wish to
33 * allow use of your version of this file only under the terms of the either
34 * the GPL or LGPL and not to allow others to use your version of this file
35 * under the MPL, indicate your decision by deleting the provisions above
36 * and replace them with the notice and other provisions required by the GPL
37 * or LGPL. If you do not delete the provisions above, a recipient may use
38 * your version of this file under the terms of any one of the MPL, the GPL
39 * or the LGPL.
40 * ***** END LICENSE BLOCK ***** */
41
42 #ifndef _COMMON_TYPES_H_
43 #define _COMMON_TYPES_H_
44
45
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 /*
54 * Some basic enumeration types used throughout the codec and by end user ...//
55 */
56
58 typedef enum { format444, format422, format420, formatNK } ChromaFormat;
59
61 typedef enum
62 {
63 DD9_7=0, /* Deslauriers-Dubuc (9,7) */
64 LEGALL5_3, /* LeGall (5,3) */
65 DD13_7, /* Deslauriers-Dubuc (13,7) */
66 HAAR0, /* Haar, no shift per level*/
67 HAAR1, /* Haar, one shift per level*/
68 FIDELITY, /* Fidelity wavelet */
69 DAUB9_7, /* Integer approximation to Daubechies 97 */
70 filterNK
71 } WltFilter;
72
75 typedef enum
76 {
77 NO_PF = 0,
78 DIAGLP,
79 RECTLP,
80 CWM
81 } PrefilterType;
82
83 static const int NUM_WLT_FILTERS = 8;
84
86 typedef enum {
87 INTRA_PICTURE=0,
88 INTER_PICTURE
89 } PictureType;
90
92 typedef enum {
93 REFERENCE_PICTURE=0,
94 NON_REFERENCE_PICTURE
95 } ReferenceType;
96
98 typedef enum {
99 VIDEO_FORMAT_CUSTOM=0,
100 VIDEO_FORMAT_QSIF525,
101 VIDEO_FORMAT_QCIF,
102 VIDEO_FORMAT_SIF525,
103 VIDEO_FORMAT_CIF,
104 VIDEO_FORMAT_4SIF525,
105 VIDEO_FORMAT_4CIF,
106 VIDEO_FORMAT_SD_480I60,
107 VIDEO_FORMAT_SD_576I50,
108 VIDEO_FORMAT_HD_720P60,
109 VIDEO_FORMAT_HD_720P50,
110 VIDEO_FORMAT_HD_1080I60,
111 VIDEO_FORMAT_HD_1080I50,
112 VIDEO_FORMAT_HD_1080P60,
113 VIDEO_FORMAT_HD_1080P50,
114 VIDEO_FORMAT_DIGI_CINEMA_2K24,
115 VIDEO_FORMAT_DIGI_CINEMA_4K24,
116 VIDEO_FORMAT_UHDTV_4K60,
117 VIDEO_FORMAT_UHDTV_4K50,
118 VIDEO_FORMAT_UHDTV_8K60,
119 VIDEO_FORMAT_UHDTV_8K50,
120 VIDEO_FORMAT_UNDEFINED
121 } VideoFormat;
122
124 typedef enum {
125 CP_HDTV_COMP_INTERNET=0,
126 CP_SDTV_525,
127 CP_SDTV_625,
128 CP_DCINEMA,
129 CP_UNDEF
130 }ColourPrimaries;
131
133 typedef enum {
134 CM_HDTV_COMP_INTERNET=0,
135 CM_SDTV,
136 CM_REVERSIBLE,
137 CM_UNDEF
138 }ColourMatrix;
139
141 typedef enum {
142 TF_TV=0,
143 TF_EXT_GAMUT,
144 TF_LINEAR,
145 TF_DCINEMA,
146 TF_UNDEF
147 } TransferFunction;
148
150 typedef enum {
151 FRAMERATE_CUSTOM=0,
152 FRAMERATE_23p97_FPS,
153 FRAMERATE_24_FPS,
154 FRAMERATE_25_FPS,
155 FRAMERATE_29p97_FPS,
156 FRAMERATE_30_FPS,
157 FRAMERATE_50_FPS,
158 FRAMERATE_59p94_FPS,
159 FRAMERATE_60_FPS,
160 FRAMERATE_14p98_FPS,
161 FRAMERATE_12p5_FPS,
162 FRAMERATE_UNDEFINED
163 } FrameRateType;
164
166 typedef enum {
167 PIXEL_ASPECT_RATIO_CUSTOM=0,
168 PIXEL_ASPECT_RATIO_1_1,
169 PIXEL_ASPECT_RATIO_10_11,
170 PIXEL_ASPECT_RATIO_12_11,
171 PIXEL_ASPECT_RATIO_40_33,
172 PIXEL_ASPECT_RATIO_16_11,
173 PIXEL_ASPECT_RATIO_4_3,
174 PIXEL_ASPECT_RATIO_UNDEFINED
175 } PixelAspectRatioType;
176
177
179 typedef enum {
180 SIGNAL_RANGE_CUSTOM=0,
181 SIGNAL_RANGE_8BIT_FULL,
182 SIGNAL_RANGE_8BIT_VIDEO,
183 SIGNAL_RANGE_10BIT_VIDEO,
184 SIGNAL_RANGE_12BIT_VIDEO,
185 SIGNAL_RANGE_UNDEFINED
186 } SignalRangeType;
187
189 typedef enum {
190 MV_PRECISION_PIXEL=0,
191 MV_PRECISION_HALF_PIXEL,
192 MV_PRECISION_QUARTER_PIXEL,
193 MV_PRECISION_EIGHTH_PIXEL,
194 MV_PRECISION_UNDEFINED
195 } MVPrecisionType;
196
198 typedef enum
199 {
200 QUANT_SINGLE,
201 QUANT_MULTIPLE,
202 QUANT_UNDEF
203 } CodeBlockMode;
204
205 #ifdef __cplusplus
206 }
207 #endif
208
209 #endif
DD9_7
Definition: common_types.h:63
CP_SDTV_525
Definition: common_types.h:126
TransferFunction
TransferFunction
Definition: common_types.h:141
DIAGLP
Definition: common_types.h:78
DAUB9_7
Definition: common_types.h:69
VIDEO_FORMAT_CUSTOM
Definition: common_types.h:99
PIXEL_ASPECT_RATIO_12_11
Definition: common_types.h:170
TF_UNDEF
Definition: common_types.h:146
VIDEO_FORMAT_SIF525
Definition: common_types.h:102
NON_REFERENCE_PICTURE
Definition: common_types.h:94
VIDEO_FORMAT_QSIF525
Definition: common_types.h:100
VIDEO_FORMAT_DIGI_CINEMA_4K24
Definition: common_types.h:115
VIDEO_FORMAT_HD_1080I50
Definition: common_types.h:111
PIXEL_ASPECT_RATIO_40_33
Definition: common_types.h:171
SIGNAL_RANGE_CUSTOM
Definition: common_types.h:180
REFERENCE_PICTURE
Definition: common_types.h:93
SIGNAL_RANGE_10BIT_VIDEO
Definition: common_types.h:183
FRAMERATE_29p97_FPS
Definition: common_types.h:155
PixelAspectRatioType
PixelAspectRatioType
Definition: common_types.h:166
CP_UNDEF
Definition: common_types.h:129
CP_DCINEMA
Definition: common_types.h:128
FRAMERATE_50_FPS
Definition: common_types.h:157
VIDEO_FORMAT_UHDTV_4K60
Definition: common_types.h:116
CodeBlockMode
CodeBlockMode
Definition: common_types.h:198
SIGNAL_RANGE_8BIT_FULL
Definition: common_types.h:181
format420
Definition: common_types.h:58
FRAMERATE_60_FPS
Definition: common_types.h:159
TF_EXT_GAMUT
Definition: common_types.h:143
ColourPrimaries
ColourPrimaries
Definition: common_types.h:124
RECTLP
Definition: common_types.h:79
SIGNAL_RANGE_12BIT_VIDEO
Definition: common_types.h:184
FRAMERATE_CUSTOM
Definition: common_types.h:151
MVPrecisionType
MVPrecisionType
Definition: common_types.h:189
ReferenceType
ReferenceType
Definition: common_types.h:92
MV_PRECISION_EIGHTH_PIXEL
Definition: common_types.h:193
format444
Definition: common_types.h:58
VIDEO_FORMAT_4CIF
Definition: common_types.h:105
VIDEO_FORMAT_SD_576I50
Definition: common_types.h:107
CM_SDTV
Definition: common_types.h:135
VIDEO_FORMAT_UHDTV_4K50
Definition: common_types.h:117
formatNK
Definition: common_types.h:58
VIDEO_FORMAT_HD_1080I60
Definition: common_types.h:110
VIDEO_FORMAT_UHDTV_8K60
Definition: common_types.h:118
VideoFormat
VideoFormat
Definition: common_types.h:98
VIDEO_FORMAT_DIGI_CINEMA_2K24
Definition: common_types.h:114
QUANT_UNDEF
Definition: common_types.h:202
VIDEO_FORMAT_HD_720P50
Definition: common_types.h:109
HAAR0
Definition: common_types.h:66
CM_HDTV_COMP_INTERNET
Definition: common_types.h:134
ChromaFormat
ChromaFormat
Definition: common_types.h:58
PIXEL_ASPECT_RATIO_4_3
Definition: common_types.h:173
FRAMERATE_25_FPS
Definition: common_types.h:154
CWM
Definition: common_types.h:80
VIDEO_FORMAT_QCIF
Definition: common_types.h:101
INTRA_PICTURE
Definition: common_types.h:87
VIDEO_FORMAT_UNDEFINED
Definition: common_types.h:120
SIGNAL_RANGE_UNDEFINED
Definition: common_types.h:185
VIDEO_FORMAT_4SIF525
Definition: common_types.h:104
VIDEO_FORMAT_HD_720P60
Definition: common_types.h:108
PIXEL_ASPECT_RATIO_10_11
Definition: common_types.h:169
TF_DCINEMA
Definition: common_types.h:145
DD13_7
Definition: common_types.h:65
LEGALL5_3
Definition: common_types.h:64
VIDEO_FORMAT_HD_1080P50
Definition: common_types.h:113
VIDEO_FORMAT_HD_1080P60
Definition: common_types.h:112
FRAMERATE_23p97_FPS
Definition: common_types.h:152
PIXEL_ASPECT_RATIO_16_11
Definition: common_types.h:172
CM_REVERSIBLE
Definition: common_types.h:136
FRAMERATE_59p94_FPS
Definition: common_types.h:158
INTER_PICTURE
Definition: common_types.h:88
FRAMERATE_12p5_FPS
Definition: common_types.h:161
PIXEL_ASPECT_RATIO_1_1
Definition: common_types.h:168
SIGNAL_RANGE_8BIT_VIDEO
Definition: common_types.h:182
CP_SDTV_625
Definition: common_types.h:127
MV_PRECISION_HALF_PIXEL
Definition: common_types.h:191
FRAMERATE_14p98_FPS
Definition: common_types.h:160
VIDEO_FORMAT_UHDTV_8K50
Definition: common_types.h:119
MV_PRECISION_UNDEFINED
Definition: common_types.h:194
FIDELITY
Definition: common_types.h:68
MV_PRECISION_QUARTER_PIXEL
Definition: common_types.h:192
format422
Definition: common_types.h:58
ColourMatrix
ColourMatrix
Definition: common_types.h:133
TF_LINEAR
Definition: common_types.h:144
VIDEO_FORMAT_SD_480I60
Definition: common_types.h:106
HAAR1
Definition: common_types.h:67
WltFilter
WltFilter
Definition: common_types.h:61
SignalRangeType
SignalRangeType
Definition: common_types.h:179
PrefilterType
PrefilterType
Definition: common_types.h:75
CM_UNDEF
Definition: common_types.h:137
QUANT_MULTIPLE
Definition: common_types.h:201
FRAMERATE_24_FPS
Definition: common_types.h:153
PIXEL_ASPECT_RATIO_UNDEFINED
Definition: common_types.h:174
PictureType
PictureType
Definition: common_types.h:86
CP_HDTV_COMP_INTERNET
Definition: common_types.h:125
PIXEL_ASPECT_RATIO_CUSTOM
Definition: common_types.h:167
MV_PRECISION_PIXEL
Definition: common_types.h:190
NO_PF
Definition: common_types.h:77
FRAMERATE_30_FPS
Definition: common_types.h:156
VIDEO_FORMAT_CIF
Definition: common_types.h:103
QUANT_SINGLE
Definition: common_types.h:200
TF_TV
Definition: common_types.h:142
FRAMERATE_UNDEFINED
Definition: common_types.h:162
FrameRateType
FrameRateType
Definition: common_types.h:150
filterNK
Definition: common_types.h:70

© 2004 British Broadcasting Corporation. Dirac code licensed under the Mozilla Public License (MPL) Version 1.1.
HTML documentation generated by Dimitri van Heesch's excellent Doxygen tool.