FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
hevcpred_template.c File Reference
#include "libavutil/pixdesc.h"
#include "bit_depth_template.c"
#include "hevcpred.h"

Go to the source code of this file.

Macros

#define POS(x, y)   src[(x) + stride * (y)]
 
#define PU(x)   ((x) >> s->sps->log2_min_pu_size)
 
#define MVF(x, y)   (s->ref->tab_mvf[(x) + (y) * min_pu_width])
 
#define MVF_PU(x, y)   MVF(PU(x0 + ((x) << hshift)), PU(y0 + ((y) << vshift)))
 
#define IS_INTRA(x, y)   (MVF_PU(x, y).pred_flag == PF_INTRA)
 
#define MIN_TB_ADDR_ZS(x, y)   s->pps->min_tb_addr_zs[(y) * (s->sps->tb_mask+2) + (x)]
 
#define EXTEND(ptr, val, len)
 
#define EXTEND_RIGHT_CIP(ptr, start, length)
 
#define EXTEND_LEFT_CIP(ptr, start, length)
 
#define EXTEND_UP_CIP(ptr, start, length)
 
#define EXTEND_DOWN_CIP(ptr, start, length)
 
#define INTRA_PRED(size)
 
#define PRED_PLANAR(size)
 

Functions

static av_always_inline void FUNC() intra_pred (HEVCContext *s, int x0, int y0, int log2_size, int c_idx)
 
static av_always_inline void FUNC() pred_planar (uint8_t *_src, const uint8_t *_top, const uint8_t *_left, ptrdiff_t stride, int trafo_size)
 
static void FUNC() pred_dc (uint8_t *_src, const uint8_t *_top, const uint8_t *_left, ptrdiff_t stride, int log2_size, int c_idx)
 
static av_always_inline void FUNC() pred_angular (uint8_t *_src, const uint8_t *_top, const uint8_t *_left, ptrdiff_t stride, int c_idx, int mode, int size)
 
static void FUNC() pred_angular_0 (uint8_t *src, const uint8_t *top, const uint8_t *left, ptrdiff_t stride, int c_idx, int mode)
 
static void FUNC() pred_angular_1 (uint8_t *src, const uint8_t *top, const uint8_t *left, ptrdiff_t stride, int c_idx, int mode)
 
static void FUNC() pred_angular_2 (uint8_t *src, const uint8_t *top, const uint8_t *left, ptrdiff_t stride, int c_idx, int mode)
 
static void FUNC() pred_angular_3 (uint8_t *src, const uint8_t *top, const uint8_t *left, ptrdiff_t stride, int c_idx, int mode)
 

Macro Definition Documentation

#define POS (   x,
  y 
)    src[(x) + stride * (y)]

Definition at line 28 of file hevcpred_template.c.

Referenced by intra_pred(), pred_angular(), pred_dc(), and pred_planar().

#define PU (   x)    ((x) >> s->sps->log2_min_pu_size)

Referenced by intra_pred().

#define MVF (   x,
  y 
)    (s->ref->tab_mvf[(x) + (y) * min_pu_width])

Referenced by intra_pred().

#define MVF_PU (   x,
  y 
)    MVF(PU(x0 + ((x) << hshift)), PU(y0 + ((y) << vshift)))
#define IS_INTRA (   x,
  y 
)    (MVF_PU(x, y).pred_flag == PF_INTRA)
#define MIN_TB_ADDR_ZS (   x,
  y 
)    s->pps->min_tb_addr_zs[(y) * (s->sps->tb_mask+2) + (x)]

Referenced by intra_pred().

#define EXTEND (   ptr,
  val,
  len 
)
Value:
do { \
for (i = 0; i < (len); i += 4) \
AV_WN4P(ptr + i, pix); \
} while (0)
const char const char void * val
Definition: avisynth_c.h:634
#define pixel4
#define AV_WN4P
int len
for(j=16;j >0;--j)
#define PIXEL_SPLAT_X4(x)

Referenced by intra_pred().

#define EXTEND_RIGHT_CIP (   ptr,
  start,
  length 
)
Value:
for (i = start; i < (start) + (length); i += 4) \
if (!IS_INTRA(i, -1)) \
AV_WN4P(&ptr[i], a); \
a = PIXEL_SPLAT_X4(ptr[i+3])
#define AV_WN4P
GLsizei GLsizei * length
Definition: opengl_enc.c:115
#define IS_INTRA(x, y)
void INT64 start
Definition: avisynth_c.h:553
#define PIXEL_SPLAT_X4(x)

Referenced by intra_pred().

#define EXTEND_LEFT_CIP (   ptr,
  start,
  length 
)
Value:
for (i = start; i > (start) - (length); i--) \
if (!IS_INTRA(i - 1, -1)) \
ptr[i - 1] = ptr[i]
GLsizei GLsizei * length
Definition: opengl_enc.c:115
#define IS_INTRA(x, y)
void INT64 start
Definition: avisynth_c.h:553

Referenced by intra_pred().

#define EXTEND_UP_CIP (   ptr,
  start,
  length 
)
Value:
for (i = (start); i > (start) - (length); i -= 4) \
if (!IS_INTRA(-1, i - 3)) \
AV_WN4P(&ptr[i - 3], a); \
a = PIXEL_SPLAT_X4(ptr[i - 3])
#define AV_WN4P
GLsizei GLsizei * length
Definition: opengl_enc.c:115
#define IS_INTRA(x, y)
void INT64 start
Definition: avisynth_c.h:553
#define PIXEL_SPLAT_X4(x)

Referenced by intra_pred().

#define EXTEND_DOWN_CIP (   ptr,
  start,
  length 
)
Value:
for (i = start; i < (start) + (length); i += 4) \
if (!IS_INTRA(-1, i)) \
AV_WN4P(&ptr[i], a); \
a = PIXEL_SPLAT_X4(ptr[i + 3])
#define AV_WN4P
GLsizei GLsizei * length
Definition: opengl_enc.c:115
#define IS_INTRA(x, y)
void INT64 start
Definition: avisynth_c.h:553
#define PIXEL_SPLAT_X4(x)

Referenced by intra_pred().

#define INTRA_PRED (   size)
Value:
static void FUNC(intra_pred_ ## size)(HEVCContext *s, int x0, int y0, int c_idx) \
{ \
FUNC(intra_pred)(s, x0, y0, size, c_idx); \
}
const char * s
Definition: avisynth_c.h:631
ptrdiff_t size
Definition: opengl_enc.c:101
#define FUNC(a)
static av_always_inline void FUNC() intra_pred(HEVCContext *s, int x0, int y0, int log2_size, int c_idx)

Definition at line 347 of file hevcpred_template.c.

#define PRED_PLANAR (   size)
Value:
static void FUNC(pred_planar_ ## size)(uint8_t *src, const uint8_t *top, \
const uint8_t *left, ptrdiff_t stride) \
{ \
FUNC(pred_planar)(src, top, left, stride, size + 2); \
}
uint8_t
ptrdiff_t size
Definition: opengl_enc.c:101
#define FUNC(a)
AVS_Value src
Definition: avisynth_c.h:482
static av_always_inline void FUNC() pred_planar(uint8_t *_src, const uint8_t *_top, const uint8_t *_left, ptrdiff_t stride, int trafo_size)
#define stride

Definition at line 375 of file hevcpred_template.c.

Function Documentation

static av_always_inline void FUNC() intra_pred ( HEVCContext s,
int  x0,
int  y0,
int  log2_size,
int  c_idx 
)
static

Definition at line 30 of file hevcpred_template.c.

static av_always_inline void FUNC() pred_planar ( uint8_t _src,
const uint8_t _top,
const uint8_t _left,
ptrdiff_t  stride,
int  trafo_size 
)
static

Definition at line 360 of file hevcpred_template.c.

static void FUNC() pred_dc ( uint8_t _src,
const uint8_t _top,
const uint8_t _left,
ptrdiff_t  stride,
int  log2_size,
int  c_idx 
)
static

Definition at line 389 of file hevcpred_template.c.

Referenced by ff_h263_encode_mb(), ff_h263_pred_acdc(), and ff_h263_pred_dc().

static av_always_inline void FUNC() pred_angular ( uint8_t _src,
const uint8_t _top,
const uint8_t _left,
ptrdiff_t  stride,
int  c_idx,
int  mode,
int  size 
)
static
static void FUNC() pred_angular_0 ( uint8_t src,
const uint8_t top,
const uint8_t left,
ptrdiff_t  stride,
int  c_idx,
int  mode 
)
static

Definition at line 513 of file hevcpred_template.c.

static void FUNC() pred_angular_1 ( uint8_t src,
const uint8_t top,
const uint8_t left,
ptrdiff_t  stride,
int  c_idx,
int  mode 
)
static

Definition at line 520 of file hevcpred_template.c.

static void FUNC() pred_angular_2 ( uint8_t src,
const uint8_t top,
const uint8_t left,
ptrdiff_t  stride,
int  c_idx,
int  mode 
)
static

Definition at line 527 of file hevcpred_template.c.

static void FUNC() pred_angular_3 ( uint8_t src,
const uint8_t top,
const uint8_t left,
ptrdiff_t  stride,
int  c_idx,
int  mode 
)
static

Definition at line 534 of file hevcpred_template.c.