schroparams

schroparams

Synopsis

struct              SchroVideoFormat;
struct              SchroParams;
struct              SchroMotionVector;
struct              SchroMotionField;
struct              SchroGlobalMotion;
typedef             SchroPictureNumber;
void                schro_params_calculate_iwt_sizes    (SchroParams *params);
void                schro_params_calculate_mc_sizes     (SchroParams *params);
int                 schro_params_set_block_params       (SchroParams *params,
                                                         int index);
void                schro_params_set_default_codeblock  (SchroParams *params);
int                 schro_params_get_block_params       (SchroParams *params);
int                 schro_params_get_frame_format       (int depth,
                                                         SchroChromaFormat chroma_format);
void                schro_params_init                   (SchroParams *params,
                                                         int video_format);
schro_bool          schro_params_is_default_codeblock   (SchroParams *params);
schro_bool          schro_params_is_default_quant_matrix
                                                        (SchroParams *params);
void                schro_params_set_default_quant_matrix
                                                        (SchroParams *params);
int                 schro_params_verify_block_params    (SchroParams *params);

Description

Details

struct SchroVideoFormat

struct SchroVideoFormat {
  SchroVideoFormatEnum index;
  int width;
  int height;
  SchroChromaFormat chroma_format;

  schro_bool interlaced;
  schro_bool top_field_first;

  int frame_rate_numerator;
  int frame_rate_denominator;
  int aspect_ratio_numerator;
  int aspect_ratio_denominator;

  int clean_width;
  int clean_height;
  int left_offset;
  int top_offset;

  int luma_offset;
  int luma_excursion;
  int chroma_offset;
  int chroma_excursion;

  SchroColourPrimaries colour_primaries;
  SchroColourMatrix colour_matrix;
  SchroTransferFunction transfer_function;

  int interlaced_coding;

  int unused0;
  int unused1;
  int unused2;
};


struct SchroParams

struct SchroParams {
};


struct SchroMotionVector

struct SchroMotionVector {
  unsigned int pred_mode : 2;
  unsigned int using_global : 1;
  unsigned int split : 2;
  unsigned int unused : 3;
  unsigned int scan : 8;
  uint32_t metric;
  uint32_t chroma_metric;
  union {
    struct {
      int16_t dx[2];
      int16_t dy[2];
    } vec;
    struct {
      int16_t dc[3];
    } dc;
  } u;
};


struct SchroMotionField

struct SchroMotionField {
  int x_num_blocks;
  int y_num_blocks;
  SchroMotionVector *motion_vectors;
};


struct SchroGlobalMotion

struct SchroGlobalMotion {
  int b0;
  int b1;
  int a_exp;
  int a00;
  int a01;
  int a10;
  int a11;
  int c_exp;
  int c0;
  int c1;
};


SchroPictureNumber

typedef uint32_t SchroPictureNumber;


schro_params_calculate_iwt_sizes ()

void                schro_params_calculate_iwt_sizes    (SchroParams *params);

Calculates the size of the array used for wavelet transformation using the current video format and transformation depth in the params structure. The params structure is updated with the new values.

The structure fields changed are: iwt_chroma_width, iwt_chroma_height, iwt_luma_width, iwt_luma_height.

params :

pointer to SchroParams structure

schro_params_calculate_mc_sizes ()

void                schro_params_calculate_mc_sizes     (SchroParams *params);

Calculates the size of the array used for motion compensation using the current video format and motion compensation paramters in the params structure. The params structure is updated with the new values.

The structure fields changed are: x_num_blocks, y_num_blocks, mc_luma_width, mc_luma_height, mc_chroma_width, mc_chroma_height, x_offset, y_offset.

params :

pointer to SchroParams structure

schro_params_set_block_params ()

int                 schro_params_set_block_params       (SchroParams *params,
                                                         int index);

Sets the block parameters for motion compensation in the parameters structure pointed to by params to the standard block parameters given by index.

params :

pointer to SchroParams structure

index :

index to standard block parameters

schro_params_set_default_codeblock ()

void                schro_params_set_default_codeblock  (SchroParams *params);

Sets the codeblock parameters in the parameters structure pointed to by params to the defaults.

params :

pointer to SchroParams structure

schro_params_get_block_params ()

int                 schro_params_get_block_params       (SchroParams *params);


schro_params_get_frame_format ()

int                 schro_params_get_frame_format       (int depth,
                                                         SchroChromaFormat chroma_format);


schro_params_init ()

void                schro_params_init                   (SchroParams *params,
                                                         int video_format);


schro_params_is_default_codeblock ()

schro_bool          schro_params_is_default_codeblock   (SchroParams *params);

params :

pointer to SchroParams structure

Returns :

True if the codeblocks in params are the default codeblocks.

schro_params_is_default_quant_matrix ()

schro_bool          schro_params_is_default_quant_matrix
                                                        (SchroParams *params);


schro_params_set_default_quant_matrix ()

void                schro_params_set_default_quant_matrix
                                                        (SchroParams *params);


schro_params_verify_block_params ()

int                 schro_params_verify_block_params    (SchroParams *params);