TUT HEVC Encoder
Data Structures | Macros | Typedefs | Functions | Variables
strategies-ipol.h File Reference

Interface for subpixel interpolation functions. More...

#include "encoder.h"
#include "global.h"
#include "kvazaar.h"
#include "search_inter.h"
Include dependency graph for strategies-ipol.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  kvz_extended_block
 
struct  kvz_epol_args
 

Macros

#define KVZ_IPOL_MAX_INPUT_SIZE_LUMA_SIMD   ((KVZ_EXT_BLOCK_W_LUMA + 1) * KVZ_EXT_BLOCK_W_LUMA + 1)
 
#define KVZ_IPOL_MAX_INPUT_SIZE_CHROMA_SIMD   ((KVZ_EXT_BLOCK_W_CHROMA + 3) * KVZ_EXT_BLOCK_W_CHROMA + 1)
 
#define KVZ_IPOL_MAX_IM_SIZE_LUMA_SIMD   ((KVZ_EXT_BLOCK_W_LUMA + 1) * LCU_WIDTH)
 
#define KVZ_IPOL_MAX_IM_SIZE_CHROMA_SIMD   ((KVZ_EXT_BLOCK_W_CHROMA + 3) * LCU_WIDTH_C)
 
#define KVZ_FME_MAX_INPUT_SIZE_SIMD   ((KVZ_EXT_BLOCK_W_LUMA + 1) * (KVZ_EXT_BLOCK_W_LUMA + 1))
 
#define STRATEGIES_IPOL_EXPORTS
 

Typedefs

typedef void() ipol_blocks_func(const encoder_control_t *encoder, kvz_pixel *src, int16_t src_stride, int width, int height, kvz_pixel filtered[4][LCU_LUMA_SIZE], int16_t hor_intermediate[5][((KVZ_EXT_BLOCK_W_LUMA+1) *LCU_WIDTH)], int8_t fme_level, int16_t hor_first_cols[5][KVZ_EXT_BLOCK_W_LUMA+1], int8_t sample_off_x, int8_t sample_off_y)
 
typedef void() epol_func(kvz_epol_args *args)
 
typedef void() kvz_sample_quarterpel_luma_func(const encoder_control_t *const encoder, kvz_pixel *src, int16_t src_stride, int width, int height, kvz_pixel *dst, int16_t dst_stride, int8_t hor_flag, int8_t ver_flag, const int16_t mv[2])
 
typedef void() kvz_sample_octpel_chroma_func(const encoder_control_t *const encoder, kvz_pixel *src, int16_t src_stride, int width, int height, kvz_pixel *dst, int16_t dst_stride, int8_t hor_flag, int8_t ver_flag, const int16_t mv[2])
 
typedef void() kvz_sample_quarterpel_luma_hi_func(const encoder_control_t *const encoder, kvz_pixel *src, int16_t src_stride, int width, int height, int16_t *dst, int16_t dst_stride, int8_t hor_flag, int8_t ver_flag, const int16_t mv[2])
 
typedef void() kvz_sample_octpel_chroma_hi_func(const encoder_control_t *const encoder, kvz_pixel *src, int16_t src_stride, int width, int height, int16_t *dst, int16_t dst_stride, int8_t hor_flag, int8_t ver_flag, const int16_t mv[2])
 
typedef void() kvz_sample_14bit_quarterpel_luma_func(const encoder_control_t *const encoder, kvz_pixel *src, int16_t src_stride, int width, int height, int16_t *dst, int16_t dst_stride, int8_t hor_flag, int8_t ver_flag, const int16_t mv[2])
 
typedef void() kvz_sample_14bit_octpel_chroma_func(const encoder_control_t *const encoder, kvz_pixel *src, int16_t src_stride, int width, int height, int16_t *dst, int16_t dst_stride, int8_t hor_flag, int8_t ver_flag, const int16_t mv[2])
 

Functions

int kvz_strategy_register_ipol (void *opaque, uint8_t bitdepth)
 

Variables

ipol_blocks_funckvz_filter_hpel_blocks_hor_ver_luma
 
ipol_blocks_funckvz_filter_hpel_blocks_diag_luma
 
ipol_blocks_funckvz_filter_qpel_blocks_hor_ver_luma
 
ipol_blocks_funckvz_filter_qpel_blocks_diag_luma
 
epol_funckvz_get_extended_block
 
kvz_sample_quarterpel_luma_funckvz_sample_quarterpel_luma
 
kvz_sample_octpel_chroma_funckvz_sample_octpel_chroma
 
kvz_sample_quarterpel_luma_hi_funckvz_sample_quarterpel_luma_hi
 
kvz_sample_octpel_chroma_hi_funckvz_sample_octpel_chroma_hi
 

Macro Definition Documentation

◆ KVZ_FME_MAX_INPUT_SIZE_SIMD

#define KVZ_FME_MAX_INPUT_SIZE_SIMD   ((KVZ_EXT_BLOCK_W_LUMA + 1) * (KVZ_EXT_BLOCK_W_LUMA + 1))

◆ KVZ_IPOL_MAX_IM_SIZE_CHROMA_SIMD

#define KVZ_IPOL_MAX_IM_SIZE_CHROMA_SIMD   ((KVZ_EXT_BLOCK_W_CHROMA + 3) * LCU_WIDTH_C)

◆ KVZ_IPOL_MAX_IM_SIZE_LUMA_SIMD

#define KVZ_IPOL_MAX_IM_SIZE_LUMA_SIMD   ((KVZ_EXT_BLOCK_W_LUMA + 1) * LCU_WIDTH)

◆ KVZ_IPOL_MAX_INPUT_SIZE_CHROMA_SIMD

#define KVZ_IPOL_MAX_INPUT_SIZE_CHROMA_SIMD   ((KVZ_EXT_BLOCK_W_CHROMA + 3) * KVZ_EXT_BLOCK_W_CHROMA + 1)

◆ KVZ_IPOL_MAX_INPUT_SIZE_LUMA_SIMD

#define KVZ_IPOL_MAX_INPUT_SIZE_LUMA_SIMD   ((KVZ_EXT_BLOCK_W_LUMA + 1) * KVZ_EXT_BLOCK_W_LUMA + 1)

◆ STRATEGIES_IPOL_EXPORTS

#define STRATEGIES_IPOL_EXPORTS
Value:
{"filter_hpel_blocks_hor_ver_luma", (void**) &kvz_filter_hpel_blocks_hor_ver_luma}, \
{"filter_hpel_blocks_diag_luma", (void**) &kvz_filter_hpel_blocks_diag_luma}, \
{"filter_qpel_blocks_hor_ver_luma", (void**) &kvz_filter_qpel_blocks_hor_ver_luma}, \
{"filter_qpel_blocks_diag_luma", (void**) &kvz_filter_qpel_blocks_diag_luma}, \
{"sample_quarterpel_luma", (void**) &kvz_sample_quarterpel_luma}, \
{"sample_octpel_chroma", (void**) &kvz_sample_octpel_chroma}, \
{"sample_quarterpel_luma_hi", (void**) &kvz_sample_quarterpel_luma_hi}, \
{"sample_octpel_chroma_hi", (void**) &kvz_sample_octpel_chroma_hi}, \
{"get_extended_block", (void**) &kvz_get_extended_block}, \
ipol_blocks_func * kvz_filter_qpel_blocks_diag_luma
Definition: strategies-ipol.c:44
ipol_blocks_func * kvz_filter_hpel_blocks_hor_ver_luma
Definition: strategies-ipol.c:41
kvz_sample_quarterpel_luma_func * kvz_sample_quarterpel_luma
Definition: strategies-ipol.c:46
ipol_blocks_func * kvz_filter_qpel_blocks_hor_ver_luma
Definition: strategies-ipol.c:43
epol_func * kvz_get_extended_block
Definition: strategies-ipol.c:45
kvz_sample_quarterpel_luma_hi_func * kvz_sample_quarterpel_luma_hi
Definition: strategies-ipol.c:48
kvz_sample_octpel_chroma_hi_func * kvz_sample_octpel_chroma_hi
Definition: strategies-ipol.c:49
ipol_blocks_func * kvz_filter_hpel_blocks_diag_luma
Definition: strategies-ipol.c:42
kvz_sample_octpel_chroma_func * kvz_sample_octpel_chroma
Definition: strategies-ipol.c:47

Typedef Documentation

◆ epol_func

typedef void() epol_func(kvz_epol_args *args)

◆ ipol_blocks_func

typedef void() ipol_blocks_func(const encoder_control_t *encoder, kvz_pixel *src, int16_t src_stride, int width, int height, kvz_pixel filtered[4][LCU_LUMA_SIZE], int16_t hor_intermediate[5][((KVZ_EXT_BLOCK_W_LUMA+1) *LCU_WIDTH)], int8_t fme_level, int16_t hor_first_cols[5][KVZ_EXT_BLOCK_W_LUMA+1], int8_t sample_off_x, int8_t sample_off_y)

◆ kvz_sample_14bit_octpel_chroma_func

typedef void() kvz_sample_14bit_octpel_chroma_func(const encoder_control_t *const encoder, kvz_pixel *src, int16_t src_stride, int width, int height, int16_t *dst, int16_t dst_stride, int8_t hor_flag, int8_t ver_flag, const int16_t mv[2])

◆ kvz_sample_14bit_quarterpel_luma_func

typedef void() kvz_sample_14bit_quarterpel_luma_func(const encoder_control_t *const encoder, kvz_pixel *src, int16_t src_stride, int width, int height, int16_t *dst, int16_t dst_stride, int8_t hor_flag, int8_t ver_flag, const int16_t mv[2])

◆ kvz_sample_octpel_chroma_func

typedef void() kvz_sample_octpel_chroma_func(const encoder_control_t *const encoder, kvz_pixel *src, int16_t src_stride, int width, int height, kvz_pixel *dst, int16_t dst_stride, int8_t hor_flag, int8_t ver_flag, const int16_t mv[2])

◆ kvz_sample_octpel_chroma_hi_func

typedef void() kvz_sample_octpel_chroma_hi_func(const encoder_control_t *const encoder, kvz_pixel *src, int16_t src_stride, int width, int height, int16_t *dst, int16_t dst_stride, int8_t hor_flag, int8_t ver_flag, const int16_t mv[2])

◆ kvz_sample_quarterpel_luma_func

typedef void() kvz_sample_quarterpel_luma_func(const encoder_control_t *const encoder, kvz_pixel *src, int16_t src_stride, int width, int height, kvz_pixel *dst, int16_t dst_stride, int8_t hor_flag, int8_t ver_flag, const int16_t mv[2])

◆ kvz_sample_quarterpel_luma_hi_func

typedef void() kvz_sample_quarterpel_luma_hi_func(const encoder_control_t *const encoder, kvz_pixel *src, int16_t src_stride, int width, int height, int16_t *dst, int16_t dst_stride, int8_t hor_flag, int8_t ver_flag, const int16_t mv[2])

Function Documentation

◆ kvz_strategy_register_ipol()

int kvz_strategy_register_ipol ( void *  opaque,
uint8_t  bitdepth 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ kvz_filter_hpel_blocks_diag_luma

ipol_blocks_func* kvz_filter_hpel_blocks_diag_luma
extern

◆ kvz_filter_hpel_blocks_hor_ver_luma

ipol_blocks_func* kvz_filter_hpel_blocks_hor_ver_luma
extern

◆ kvz_filter_qpel_blocks_diag_luma

ipol_blocks_func* kvz_filter_qpel_blocks_diag_luma
extern

◆ kvz_filter_qpel_blocks_hor_ver_luma

ipol_blocks_func* kvz_filter_qpel_blocks_hor_ver_luma
extern

◆ kvz_get_extended_block

epol_func* kvz_get_extended_block
extern

◆ kvz_sample_octpel_chroma

kvz_sample_octpel_chroma_func* kvz_sample_octpel_chroma
extern

◆ kvz_sample_octpel_chroma_hi

kvz_sample_octpel_chroma_hi_func* kvz_sample_octpel_chroma_hi
extern

◆ kvz_sample_quarterpel_luma

kvz_sample_quarterpel_luma_func* kvz_sample_quarterpel_luma
extern

◆ kvz_sample_quarterpel_luma_hi

kvz_sample_quarterpel_luma_hi_func* kvz_sample_quarterpel_luma_hi
extern