FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
hevc_filter.c File Reference
#include "libavutil/common.h"
#include "libavutil/internal.h"
#include "cabac_functions.h"
#include "golomb.h"
#include "hevc.h"
#include "bit_depth_template.c"

Go to the source code of this file.

Macros

#define LUMA   0
 
#define CB   1
 
#define CR   2
 
#define CTB(tab, x, y)   ((tab)[(y) * s->sps->ctb_width + (x)])
 
#define TC_CALC(qp, bs)
 

Functions

static int chroma_tc (HEVCContext *s, int qp_y, int c_idx, int tc_offset)
 
static int get_qPy_pred (HEVCContext *s, int xC, int yC, int xBase, int yBase, int log2_cb_size)
 
void ff_hevc_set_qPy (HEVCContext *s, int xC, int yC, int xBase, int yBase, int log2_cb_size)
 
static int get_qPy (HEVCContext *s, int xC, int yC)
 
static void copy_CTB (uint8_t *dst, uint8_t *src, int width, int height, int stride)
 
static void sao_filter_CTB (HEVCContext *s, int x, int y)
 
static int get_pcm (HEVCContext *s, int x, int y)
 
static void deblocking_filter_CTB (HEVCContext *s, int x0, int y0)
 
static int boundary_strength (HEVCContext *s, MvField *curr, uint8_t curr_cbf_luma, MvField *neigh, uint8_t neigh_cbf_luma, RefPicList *neigh_refPicList, int tu_border)
 
void ff_hevc_deblocking_boundary_strengths (HEVCContext *s, int x0, int y0, int log2_trafo_size, int slice_or_tiles_up_boundary, int slice_or_tiles_left_boundary)
 
void ff_hevc_hls_filter (HEVCContext *s, int x, int y)
 
void ff_hevc_hls_filters (HEVCContext *s, int x_ctb, int y_ctb, int ctb_size)
 

Variables

static const uint8_t tctable [54]
 
static const uint8_t betatable [52]
 

Macro Definition Documentation

#define LUMA   0

Definition at line 34 of file hevc_filter.c.

Referenced by deblocking_filter_CTB().

#define CB   1

Definition at line 35 of file hevc_filter.c.

#define CR   2

Definition at line 36 of file hevc_filter.c.

#define CTB (   tab,
  x,
  y 
)    ((tab)[(y) * s->sps->ctb_width + (x)])

Definition at line 152 of file hevc_filter.c.

Referenced by sao_filter_CTB().

#define TC_CALC (   qp,
  bs 
)
Value:
tctable[av_clip((qp) + DEFAULT_INTRA_TC_OFFSET * ((bs) - 1) + \
(tc_offset >> 1 << 1), \

Definition at line 299 of file hevc_filter.c.

Referenced by deblocking_filter_CTB().

Function Documentation

static int chroma_tc ( HEVCContext s,
int  qp_y,
int  c_idx,
int  tc_offset 
)
static

Definition at line 50 of file hevc_filter.c.

Referenced by deblocking_filter_CTB().

static int get_qPy_pred ( HEVCContext s,
int  xC,
int  yC,
int  xBase,
int  yBase,
int  log2_cb_size 
)
static

Definition at line 75 of file hevc_filter.c.

Referenced by ff_hevc_set_qPy().

void ff_hevc_set_qPy ( HEVCContext s,
int  xC,
int  yC,
int  xBase,
int  yBase,
int  log2_cb_size 
)

Definition at line 119 of file hevc_filter.c.

Referenced by hls_coding_unit(), and hls_transform_unit().

static int get_qPy ( HEVCContext s,
int  xC,
int  yC 
)
static

Definition at line 132 of file hevc_filter.c.

Referenced by deblocking_filter_CTB().

static void copy_CTB ( uint8_t dst,
uint8_t src,
int  width,
int  height,
int  stride 
)
static

Definition at line 140 of file hevc_filter.c.

Referenced by sao_filter_CTB().

static void sao_filter_CTB ( HEVCContext s,
int  x,
int  y 
)
static

Definition at line 154 of file hevc_filter.c.

Referenced by ff_hevc_hls_filter().

static int get_pcm ( HEVCContext s,
int  x,
int  y 
)
static

Definition at line 283 of file hevc_filter.c.

Referenced by deblocking_filter_CTB().

static void deblocking_filter_CTB ( HEVCContext s,
int  x0,
int  y0 
)
static

Definition at line 304 of file hevc_filter.c.

Referenced by ff_hevc_hls_filter().

static int boundary_strength ( HEVCContext s,
MvField curr,
uint8_t  curr_cbf_luma,
MvField neigh,
uint8_t  neigh_cbf_luma,
RefPicList neigh_refPicList,
int  tu_border 
)
static

Definition at line 480 of file hevc_filter.c.

Referenced by ff_hevc_deblocking_boundary_strengths().

void ff_hevc_deblocking_boundary_strengths ( HEVCContext s,
int  x0,
int  y0,
int  log2_trafo_size,
int  slice_or_tiles_up_boundary,
int  slice_or_tiles_left_boundary 
)

Definition at line 558 of file hevc_filter.c.

Referenced by hls_coding_unit(), hls_pcm_sample(), and hls_transform_tree().

void ff_hevc_hls_filter ( HEVCContext s,
int  x,
int  y 
)

Definition at line 701 of file hevc_filter.c.

Referenced by ff_hevc_hls_filters(), hls_decode_entry(), and hls_decode_entry_wpp().

void ff_hevc_hls_filters ( HEVCContext s,
int  x_ctb,
int  y_ctb,
int  ctb_size 
)

Definition at line 708 of file hevc_filter.c.

Referenced by hls_decode_entry(), and hls_decode_entry_wpp().

Variable Documentation

const uint8_t tctable[54]
static
Initial value:
= {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4,
5, 5, 6, 6, 7, 8, 9, 10, 11, 13, 14, 16, 18, 20, 22, 24
}

Definition at line 38 of file hevc_filter.c.

Referenced by chroma_tc().

const uint8_t betatable[52]
static
Initial value:
= {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36,
38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64
}

Definition at line 44 of file hevc_filter.c.

Referenced by deblocking_filter_CTB().