Dirac - A Video Codec

Created by the British Broadcasting Corporation.


dirac_encoder.h
Go to the documentation of this file.
1/* ***** BEGIN LICENSE BLOCK *****
2*
3* $Id: dirac_encoder.h,v 1.28 2008/11/18 23:25:54 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): Anuradha Suraparaju (Original Author)
24* Andrew Kennedy,
25* Thomas Davies
26* Myo Tun (Brunel University, myo.tun@brunel.ac.uk)
27*
28* Alternatively, the contents of this file may be used under the terms of
29* the GNU General Public License Version 2 (the "GPL"), or the GNU Lesser
30* Public License Version 2.1 (the "LGPL"), in which case the provisions of
31* the GPL or the LGPL are applicable instead of those above. If you wish to
32* allow use of your version of this file only under the terms of the either
33* the GPL or LGPL and not to allow others to use your version of this file
34* under the MPL, indicate your decision by deleting the provisions above
35* and replace them with the notice and other provisions required by the GPL
36* or LGPL. If you do not delete the provisions above, a recipient may use
37* your version of this file under the terms of any one of the MPL, the GPL
38* or the LGPL.
39* ***** END LICENSE BLOCK ***** */
40
41#ifndef DIRAC_ENCODER_H
42#define DIRAC_ENCODER_H
43
46
150
151#ifdef __cplusplus
152extern "C" {
153#endif
154
163
167
171
231
245
259
260
262typedef struct
263{
265 unsigned char *buffer;
267 int size;
269
271typedef struct
272{
274 unsigned int mv_bits;
276 unsigned int ycomp_bits;
278 unsigned int ucomp_bits;
280 unsigned int vcomp_bits;
282 unsigned int pic_bits;
284
286typedef struct
287{
289 int64_t mv_bits;
291 int64_t seq_bits;
293 int64_t ycomp_bits;
295 int64_t ucomp_bits;
297 int64_t vcomp_bits;
299 int64_t bit_rate;
301
303typedef struct
304{
306 int x;
308 int y;
309} dirac_mv_t;
310
312typedef struct
313{
315 float SAD;
317 float mvcost;
319
366
368typedef struct
369{
372
375
381
384
387
390
393
394 /* locally decoded frame (NB: not picture) available flag.
395 1 - locally decoded frame available in dec_buf.
396 0 - locally decoded frame not available.
397 */
399
405
408
413
419
421 const void *compressor;
423
431
432#if DIRAC_RESEARCH_VERSION_ATLEAST(1,0,2)
441#endif
442
452extern DllExport int dirac_encoder_load (dirac_encoder_t *encoder, unsigned char *uncdata, int uncdata_size);
453
465
471
477
478#endif
479#ifdef __cplusplus
480}
481#endif
ReferenceType dirac_reference_type_t
Definition dirac_types.h:85
WltFilter dirac_wlt_filter_t
Definition dirac_types.h:86
PictureType dirac_picture_type_t
Definition dirac_types.h:84
#define DllExport
Definition dirac_types.h:55
VideoFormat
Definition common_types.h:98
PrefilterType
Definition common_types.h:76
MVPrecisionType
Definition common_types.h:189
DllExport void dirac_encoder_end_sequence(dirac_encoder_t *encoder)
DllExport void dirac_encoder_context_init(dirac_encoder_context_t *enc_ctx, dirac_encoder_presets_t preset)
DllExport dirac_encoder_state_t dirac_encoder_output(dirac_encoder_t *encoder)
VideoFormat dirac_encoder_presets_t
Definition dirac_encoder.h:170
dirac_encoder_state_t
Definition dirac_encoder.h:157
@ ENC_STATE_EOS
Definition dirac_encoder.h:161
@ ENC_STATE_AVAIL
Definition dirac_encoder.h:160
@ ENC_STATE_BUFFER
Definition dirac_encoder.h:159
@ ENC_STATE_INVALID
Definition dirac_encoder.h:158
MVPrecisionType dirac_mvprecision_t
Definition dirac_encoder.h:174
DllExport int dirac_encoder_load(dirac_encoder_t *encoder, unsigned char *uncdata, int uncdata_size)
DllExport int dirac_encoder_pts_offset(const dirac_encoder_t *encoder)
DllExport void dirac_encoder_close(dirac_encoder_t *encoder)
PrefilterType dirac_prefilter_t
Definition dirac_encoder.h:166
DllExport dirac_encoder_t * dirac_encoder_init(const dirac_encoder_context_t *enc_ctx, int verbose)
Definition dirac_types.h:144
Definition dirac_types.h:174
Definition dirac_types.h:187
Definition dirac_encoder.h:177
int x_range_me
Definition dirac_encoder.h:187
unsigned int prefilter_strength
Definition dirac_encoder.h:219
int using_ac
Definition dirac_encoder.h:229
float cpd
Definition dirac_encoder.h:197
dirac_wlt_filter_t intra_wlt_filter
Definition dirac_encoder.h:209
int L1_sep
Definition dirac_encoder.h:191
int num_L1
Definition dirac_encoder.h:195
int ybsep
Definition dirac_encoder.h:205
unsigned int picture_coding_mode
Definition dirac_encoder.h:227
int lossless
Definition dirac_encoder.h:179
int y_range_me
Definition dirac_encoder.h:189
int xbsep
Definition dirac_encoder.h:203
int yblen
Definition dirac_encoder.h:201
int trate
Definition dirac_encoder.h:225
float qf
Definition dirac_encoder.h:181
unsigned int multi_quants
Definition dirac_encoder.h:221
dirac_wlt_filter_t inter_wlt_filter
Definition dirac_encoder.h:211
unsigned int spatial_partition
Definition dirac_encoder.h:215
int xblen
Definition dirac_encoder.h:199
unsigned int wlt_depth
Definition dirac_encoder.h:213
int video_format
Definition dirac_encoder.h:207
int full_search
Definition dirac_encoder.h:183
dirac_prefilter_t prefilter
Definition dirac_encoder.h:217
dirac_mvprecision_t mv_precision
Definition dirac_encoder.h:223
int combined_me
Definition dirac_encoder.h:185
Definition dirac_encoder.h:234
int instr_flag
Definition dirac_encoder.h:240
int decode_flag
Definition dirac_encoder.h:243
dirac_sourceparams_t src_params
Definition dirac_encoder.h:236
dirac_encparams_t enc_params
Definition dirac_encoder.h:238
Definition dirac_encoder.h:263
unsigned char * buffer
Definition dirac_encoder.h:265
int size
Definition dirac_encoder.h:267
Definition dirac_encoder.h:272
unsigned int ucomp_bits
Definition dirac_encoder.h:278
unsigned int ycomp_bits
Definition dirac_encoder.h:276
unsigned int pic_bits
Definition dirac_encoder.h:282
unsigned int mv_bits
Definition dirac_encoder.h:274
unsigned int vcomp_bits
Definition dirac_encoder.h:280
Definition dirac_encoder.h:287
int64_t vcomp_bits
Definition dirac_encoder.h:297
int64_t ycomp_bits
Definition dirac_encoder.h:293
int64_t mv_bits
Definition dirac_encoder.h:289
int64_t bit_rate
Definition dirac_encoder.h:299
int64_t seq_bits
Definition dirac_encoder.h:291
int64_t ucomp_bits
Definition dirac_encoder.h:295
Definition dirac_encoder.h:304
int x
Definition dirac_encoder.h:306
int y
Definition dirac_encoder.h:308
Definition dirac_encoder.h:313
float mvcost
Definition dirac_encoder.h:317
float SAD
Definition dirac_encoder.h:315
Definition dirac_encoder.h:322
int sb_ylen
Definition dirac_encoder.h:340
int xbsep
Definition dirac_encoder.h:334
dirac_mv_t * mv[2]
Definition dirac_encoder.h:362
int * pred_mode
Definition dirac_encoder.h:350
int sb_xlen
Definition dirac_encoder.h:338
dirac_mv_cost_t * pred_costs[2]
Definition dirac_encoder.h:364
int mv_ylen
Definition dirac_encoder.h:344
short * dc_ucomp
Definition dirac_encoder.h:358
int ybsep
Definition dirac_encoder.h:336
int mv_xlen
Definition dirac_encoder.h:342
float * intra_costs
Definition dirac_encoder.h:352
int refs[2]
Definition dirac_encoder.h:332
int * sb_split_mode
Definition dirac_encoder.h:346
dirac_picture_type_t ptype
Definition dirac_encoder.h:324
dirac_reference_type_t rtype
Definition dirac_encoder.h:326
short * dc_vcomp
Definition dirac_encoder.h:360
short * dc_ycomp
Definition dirac_encoder.h:356
int pnum
Definition dirac_encoder.h:328
dirac_mv_cost_t * bipred_costs
Definition dirac_encoder.h:354
float * sb_costs
Definition dirac_encoder.h:348
int num_refs
Definition dirac_encoder.h:330
Definition dirac_encoder.h:369
int decoded_frame_avail
Definition dirac_encoder.h:398
int end_of_sequence
Definition dirac_encoder.h:392
const void * compressor
Definition dirac_encoder.h:421
dirac_enc_data_t enc_buf
Definition dirac_encoder.h:380
dirac_enc_picstats_t enc_pstats
Definition dirac_encoder.h:386
dirac_instr_t instr
Definition dirac_encoder.h:412
dirac_encoder_context_t enc_ctx
Definition dirac_encoder.h:371
int instr_data_avail
Definition dirac_encoder.h:418
dirac_picparams_t enc_pparams
Definition dirac_encoder.h:383
dirac_picparams_t dec_pparams
Definition dirac_encoder.h:407
dirac_enc_seqstats_t enc_seqstats
Definition dirac_encoder.h:389
dirac_framebuf_t dec_buf
Definition dirac_encoder.h:404
int encoded_picture_avail
Definition dirac_encoder.h:374

© 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.