avcodec/vvc/dsp: prefix TxType and TxSize with VVC

See https://patchwork.ffmpeg.org/project/ffmpeg/patch/TYSPR06MB64337C4A9ADF5312E6648543AA62A@TYSPR06MB6433.apcprd06.prod.outlook.com/#81892

Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
release/7.1
Wu Jianhua 5 months ago committed by Nuo Mi
parent ae1a9cfd52
commit ca5c9e810a
  1. 28
      libavcodec/vvc/dsp.h
  2. 2
      libavcodec/vvc/dsp_template.c
  3. 26
      libavcodec/vvc/intra.c

@ -27,21 +27,21 @@
#include <stdint.h>
#include <stddef.h>
enum TxType {
DCT2,
DST7,
DCT8,
N_TX_TYPE,
enum VVCTxType {
VVC_DCT2,
VVC_DST7,
VVC_DCT8,
VVC_N_TX_TYPE,
};
enum TxSize {
TX_SIZE_2,
TX_SIZE_4,
TX_SIZE_8,
TX_SIZE_16,
TX_SIZE_32,
TX_SIZE_64,
N_TX_SIZE,
enum VVCTxSize {
VVC_TX_SIZE_2,
VVC_TX_SIZE_4,
VVC_TX_SIZE_8,
VVC_TX_SIZE_16,
VVC_TX_SIZE_32,
VVC_TX_SIZE_64,
VVC_N_TX_SIZE,
};
typedef struct VVCInterDSPContext {
@ -127,7 +127,7 @@ typedef struct VVCItxDSPContext {
void (*add_residual_joint)(uint8_t *dst, const int *res, int width, int height, ptrdiff_t stride, int c_sign, int shift);
void (*pred_residual_joint)(int *buf, int width, int height, int c_sign, int shift);
void (*itx[N_TX_TYPE][N_TX_SIZE])(int *coeffs, ptrdiff_t step, size_t nz);
void (*itx[VVC_N_TX_TYPE][VVC_N_TX_SIZE])(int *coeffs, ptrdiff_t step, size_t nz);
void (*transform_bdpcm)(int *coeffs, int width, int height, int vertical, int log2_transform_range);
} VVCItxDSPContext;

@ -97,7 +97,7 @@ static void FUNC(transform_bdpcm)(int *coeffs, const int width, const int height
static void FUNC(ff_vvc_itx_dsp_init)(VVCItxDSPContext *const itx)
{
#define VVC_ITX(TYPE, type, s) \
itx->itx[TYPE][TX_SIZE_##s] = ff_vvc_inv_##type##_##s; \
itx->itx[VVC_##TYPE][VVC_##TX_SIZE_##s] = ff_vvc_inv_##type##_##s; \
#define VVC_ITX_COMMON(TYPE, type) \
VVC_ITX(TYPE, type, 4); \

@ -128,15 +128,15 @@ static void ilfnst_transform(const VVCLocalContext *lc, TransformBlock *tb)
}
//part of 8.7.4 Transformation process for scaled transform coefficients
static void derive_transform_type(const VVCFrameContext *fc, const VVCLocalContext *lc, const TransformBlock *tb, enum TxType *trh, enum TxType *trv)
static void derive_transform_type(const VVCFrameContext *fc, const VVCLocalContext *lc, const TransformBlock *tb, enum VVCTxType *trh, enum VVCTxType *trv)
{
const CodingUnit *cu = lc->cu;
static const enum TxType mts_to_trh[] = {DCT2, DST7, DCT8, DST7, DCT8};
static const enum TxType mts_to_trv[] = {DCT2, DST7, DST7, DCT8, DCT8};
static const enum VVCTxType mts_to_trh[] = { VVC_DCT2, VVC_DST7, VVC_DCT8, VVC_DST7, VVC_DCT8 };
static const enum VVCTxType mts_to_trv[] = { VVC_DCT2, VVC_DST7, VVC_DST7, VVC_DCT8, VVC_DCT8 };
const VVCSPS *sps = fc->ps.sps;
int implicit_mts_enabled = 0;
if (tb->c_idx || (cu->isp_split_type != ISP_NO_SPLIT && cu->lfnst_idx)) {
*trh = *trv = DCT2;
*trh = *trv = VVC_DCT2;
return;
}
@ -152,11 +152,11 @@ static void derive_transform_type(const VVCFrameContext *fc, const VVCLocalConte
const int w = tb->tb_width;
const int h = tb->tb_height;
if (cu->sbt_flag) {
*trh = (cu->sbt_horizontal_flag || cu->sbt_pos_flag) ? DST7 : DCT8;
*trv = (!cu->sbt_horizontal_flag || cu->sbt_pos_flag) ? DST7 : DCT8;
*trh = (cu->sbt_horizontal_flag || cu->sbt_pos_flag) ? VVC_DST7 : VVC_DCT8;
*trv = (!cu->sbt_horizontal_flag || cu->sbt_pos_flag) ? VVC_DST7 : VVC_DCT8;
} else {
*trh = (w >= 4 && w <= 16) ? DST7 : DCT2;
*trv = (h >= 4 && h <= 16) ? DST7 : DCT2;
*trh = (w >= 4 && w <= 16) ? VVC_DST7 : VVC_DCT2;
*trv = (h >= 4 && h <= 16) ? VVC_DST7 : VVC_DCT2;
}
return;
}
@ -447,7 +447,7 @@ static void dequant(const VVCLocalContext *lc, const TransformUnit *tu, Transfor
//transmatrix[0][0]
#define DCT_A 64
static void itx_2d(const VVCFrameContext *fc, TransformBlock *tb, const enum TxType trh, const enum TxType trv)
static void itx_2d(const VVCFrameContext *fc, TransformBlock *tb, const enum VVCTxType trh, const enum VVCTxType trv)
{
const VVCSPS *sps = fc->ps.sps;
const int w = tb->tb_width;
@ -456,7 +456,7 @@ static void itx_2d(const VVCFrameContext *fc, TransformBlock *tb, const enum TxT
const size_t nzh = tb->max_scan_y + 1;
const int shift[] = { 7, 5 + sps->log2_transform_range - sps->bit_depth };
if (w == h && nzw == 1 && nzh == 1 && trh == DCT2 && trv == DCT2) {
if (w == h && nzw == 1 && nzh == 1 && trh == VVC_DCT2 && trv == VVC_DCT2) {
const int add[] = { 1 << (shift[0] - 1), 1 << (shift[1] - 1) };
const int t = (tb->coeffs[0] * DCT_A + add[0]) >> shift[0];
const int dc = (t * DCT_A + add[1]) >> shift[1];
@ -476,7 +476,7 @@ static void itx_2d(const VVCFrameContext *fc, TransformBlock *tb, const enum TxT
scale(tb->coeffs, tb->coeffs, w, h, shift[1]);
}
static void itx_1d(const VVCFrameContext *fc, TransformBlock *tb, const enum TxType trh, const enum TxType trv)
static void itx_1d(const VVCFrameContext *fc, TransformBlock *tb, const enum VVCTxType trh, const enum VVCTxType trv)
{
const VVCSPS *sps = fc->ps.sps;
const int w = tb->tb_width;
@ -484,7 +484,7 @@ static void itx_1d(const VVCFrameContext *fc, TransformBlock *tb, const enum TxT
const size_t nzw = tb->max_scan_x + 1;
const size_t nzh = tb->max_scan_y + 1;
if ((w > 1 && nzw == 1 && trh == DCT2) || (h > 1 && nzh == 1 && trv == DCT2)) {
if ((w > 1 && nzw == 1 && trh == VVC_DCT2) || (h > 1 && nzh == 1 && trv == VVC_DCT2)) {
const int shift = 6 + sps->log2_transform_range - sps->bit_depth;
const int add = 1 << (shift - 1);
const int dc = (tb->coeffs[0] * DCT_A + add) >> shift;
@ -542,7 +542,7 @@ static void itransform(VVCLocalContext *lc, TransformUnit *tu, const int tu_idx,
transform_bdpcm(tb, lc, cu);
dequant(lc, tu, tb);
if (!tb->ts) {
enum TxType trh, trv;
enum VVCTxType trh, trv;
if (cu->apply_lfnst_flag[c_idx])
ilfnst_transform(lc, tb);

Loading…
Cancel
Save