FFmpeg
Loading...
Searching...
No Matches
hevc_deblock.c File Reference
#include <string.h>
#include "libavutil/intreadwrite.h"
#include "libavutil/macros.h"
#include "libavutil/mem_internal.h"
#include "libavcodec/hevc/dsp.h"
#include "checkasm.h"

Go to the source code of this file.

Macros

#define SIZEOF_PIXEL   ((bit_depth + 7) / 8)
 
#define BUF_STRIDE   (16 * 2)
 
#define BUF_LINES   (16)
 
#define BUF_OFFSET   (2 * BUF_STRIDE * BUF_LINES)
 
#define BUF_SIZE   (2 * BUF_STRIDE * BUF_LINES + BUF_OFFSET * 2)
 
#define randomize_buffers(buf0, buf1, size)
 
#define P3   buf[-4 * xstride]
 
#define P2   buf[-3 * xstride]
 
#define P1   buf[-2 * xstride]
 
#define P0   buf[-1 * xstride]
 
#define Q0   buf[0 * xstride]
 
#define Q1   buf[1 * xstride]
 
#define Q2   buf[2 * xstride]
 
#define Q3   buf[3 * xstride]
 
#define TC25(x)
 
#define MASK(x)
 
#define GET(x)
 
#define SET(x, y)
 
#define RANDCLIP(x, diff)
 

Functions

static void check_deblock_chroma (HEVCDSPContext *h, int bit_depth, int c)
 
static void randomize_luma_buffers (int type, int *beta, int32_t tc[2], uint8_t *buf, ptrdiff_t xstride, ptrdiff_t ystride, int bit_depth)
 
static void check_deblock_luma (HEVCDSPContext *h, int bit_depth, int c)
 
void checkasm_check_hevc_deblock (void)
 

Variables

static const uint32_t pixel_mask [3] = { 0xffffffff, 0x03ff03ff, 0x0fff0fff }
 

Macro Definition Documentation

◆ SIZEOF_PIXEL

#define SIZEOF_PIXEL   ((bit_depth + 7) / 8)

Definition at line 31 of file hevc_deblock.c.

◆ BUF_STRIDE

#define BUF_STRIDE   (16 * 2)

Definition at line 32 of file hevc_deblock.c.

Referenced by check_deblock_chroma().

◆ BUF_LINES

#define BUF_LINES   (16)

Definition at line 33 of file hevc_deblock.c.

◆ BUF_OFFSET

#define BUF_OFFSET   (2 * BUF_STRIDE * BUF_LINES)

Definition at line 35 of file hevc_deblock.c.

Referenced by check_deblock_chroma(), and check_deblock_luma().

◆ BUF_SIZE

#define BUF_SIZE   (2 * BUF_STRIDE * BUF_LINES + BUF_OFFSET * 2)

Definition at line 36 of file hevc_deblock.c.

◆ randomize_buffers

#define randomize_buffers ( buf0,
buf1,
size )
Value:
do { \
uint32_t mask = pixel_mask[(bit_depth - 8) >> 1]; \
int k; \
for (k = 0; k < size; k += 4) { \
uint32_t r = rnd() & mask; \
AV_WN32A(buf0 + k, r); \
AV_WN32A(buf1 + k, r); \
} \
} while (0)
static void bit_depth(AudioStatsContext *s, const uint64_t *const mask, uint8_t *depth)
Definition af_astats.c:246
#define rnd
Definition checkasm.h:136
#define r
Definition input.c:42
static const uint16_t mask[17]
Definition lzw.c:38
static const uint32_t pixel_mask[5]
Definition h264dsp.c:31
int size

Definition at line 38 of file hevc_deblock.c.

Referenced by check_deblock_chroma().

◆ P3

#define P3   buf[-4 * xstride]

Definition at line 88 of file hevc_deblock.c.

◆ P2

#define P2   buf[-3 * xstride]

Definition at line 89 of file hevc_deblock.c.

◆ P1

#define P1   buf[-2 * xstride]

Definition at line 90 of file hevc_deblock.c.

◆ P0

#define P0   buf[-1 * xstride]

Definition at line 91 of file hevc_deblock.c.

◆ Q0

#define Q0   buf[0 * xstride]

Definition at line 92 of file hevc_deblock.c.

◆ Q1

#define Q1   buf[1 * xstride]

Definition at line 93 of file hevc_deblock.c.

◆ Q2

#define Q2   buf[2 * xstride]

Definition at line 94 of file hevc_deblock.c.

◆ Q3

#define Q3   buf[3 * xstride]

Definition at line 95 of file hevc_deblock.c.

◆ TC25

#define TC25 ( x)
Value:
((tc[x] * 5 + 1) >> 1)

Definition at line 97 of file hevc_deblock.c.

Referenced by randomize_luma_buffers().

◆ MASK

#define MASK ( x)
Value:
(uint16_t)(x & ((1 << (bit_depth)) - 1))

Definition at line 98 of file hevc_deblock.c.

◆ GET

#define GET ( x)
Value:
((SIZEOF_PIXEL == 1) ? *(uint8_t*)(&x) : *(uint16_t*)(&x))
#define SIZEOF_PIXEL
Definition h264chroma.c:28

Definition at line 99 of file hevc_deblock.c.

◆ SET

#define SET ( x,
y )
Value:
do { \
uint16_t z = MASK(y); \
if (SIZEOF_PIXEL == 1) \
*(uint8_t*)(&x) = z; \
else \
*(uint16_t*)(&x) = z; \
} while (0)
#define MASK

Definition at line 100 of file hevc_deblock.c.

Referenced by randomize_luma_buffers().

◆ RANDCLIP

#define RANDCLIP ( x,
diff )
Value:
av_clip(GET(x) - (diff), 0, \
(1 << (bit_depth)) - 1) + rnd() % FFMAX(2 * (diff), 1)
#define av_clip
Definition common.h:100
#define GET(name, reg)
#define FFMAX(a, b)
Definition macros.h:47
static av_always_inline int diff(const struct color_info *a, const struct color_info *b, const int trans_thresh)

Definition at line 107 of file hevc_deblock.c.

Referenced by randomize_luma_buffers().

Function Documentation

◆ check_deblock_chroma()

static void check_deblock_chroma ( HEVCDSPContext * h,
int bit_depth,
int c )
static

Definition at line 49 of file hevc_deblock.c.

Referenced by checkasm_check_hevc_deblock().

◆ randomize_luma_buffers()

static void randomize_luma_buffers ( int type,
int * beta,
int32_t tc[2],
uint8_t * buf,
ptrdiff_t xstride,
ptrdiff_t ystride,
int bit_depth )
static

Definition at line 118 of file hevc_deblock.c.

Referenced by check_deblock_luma().

◆ check_deblock_luma()

static void check_deblock_luma ( HEVCDSPContext * h,
int bit_depth,
int c )
static

Definition at line 217 of file hevc_deblock.c.

Referenced by checkasm_check_hevc_deblock().

◆ checkasm_check_hevc_deblock()

void checkasm_check_hevc_deblock ( void )

Definition at line 264 of file hevc_deblock.c.

Variable Documentation

◆ pixel_mask

const uint32_t pixel_mask[3] = { 0xffffffff, 0x03ff03ff, 0x0fff0fff }
static

Definition at line 29 of file hevc_deblock.c.