FFmpeg
vvc_intra.h
Go to the documentation of this file.
1 /*
2  * VVC intra prediction
3  *
4  * Copyright (C) 2021 Nuo Mi
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 #ifndef AVCODEC_VVC_VVC_INTRA_H
23 #define AVCODEC_VVC_VVC_INTRA_H
24 
25 #include "vvc_ctu.h"
26 
27 /**
28  * reconstruct a CTU
29  * @param lc local context for CTU
30  * @param rs raster order for the CTU.
31  * @param rx raster order x for the CTU.
32  * @param ry raster order y for the CTU.
33  * @return AVERROR
34  */
35 int ff_vvc_reconstruct(VVCLocalContext *lc, const int rs, const int rx, const int ry);
36 
37 //utils for vvc_intra_template
38 int ff_vvc_get_top_available(const VVCLocalContext *lc, int x0, int y0, int target_size, int c_idx);
39 int ff_vvc_get_left_available(const VVCLocalContext *lc, int x0, int y0, int target_size, int c_idx);
40 int ff_vvc_get_mip_size_id(int w, int h);
41 int ff_vvc_need_pdpc(int w, int h, uint8_t bdpcm_flag, int mode, int ref_idx);
42 int ff_vvc_nscale_derive(int w, int h, int mode);
44 int ff_vvc_intra_pred_angle_derive(int pred_mode);
45 int ff_vvc_intra_inv_angle_derive(int pred_mode);
47  int tb_width, int tb_height, int c_idx, int pred_mode_intra);
48 
49 #endif // AVCODEC_VVC_VVC_INTRA_H
ff_vvc_need_pdpc
int ff_vvc_need_pdpc(int w, int h, uint8_t bdpcm_flag, int mode, int ref_idx)
Definition: vvc_intra_utils.c:61
CodingUnit
Definition: hevcdec.h:282
w
uint8_t w
Definition: llviddspenc.c:38
ff_vvc_wide_angle_mode_mapping
int ff_vvc_wide_angle_mode_mapping(const CodingUnit *cu, int tb_width, int tb_height, int c_idx, int pred_mode_intra)
Definition: vvc_intra_utils.c:197
ff_vvc_get_left_available
int ff_vvc_get_left_available(const VVCLocalContext *lc, int x0, int y0, int target_size, int c_idx)
Definition: vvc_intra_utils.c:126
ff_vvc_nscale_derive
int ff_vvc_nscale_derive(int w, int h, int mode)
Definition: vvc_intra_utils.c:42
ff_vvc_get_top_available
int ff_vvc_get_top_available(const VVCLocalContext *lc, int x0, int y0, int target_size, int c_idx)
Definition: vvc_intra_utils.c:95
ff_vvc_get_mip_size_id
int ff_vvc_get_mip_size_id(int w, int h)
Definition: vvc_intra_utils.c:33
VVCLocalContext
Definition: vvc_ctu.h:368
vvc_ctu.h
ff_vvc_ref_filter_flag_derive
int ff_vvc_ref_filter_flag_derive(int mode)
Definition: vvc_intra_utils.c:159
ff_vvc_intra_pred_angle_derive
int ff_vvc_intra_pred_angle_derive(int pred_mode)
Definition: vvc_intra_utils.c:165
mode
mode
Definition: ebur128.h:83
ff_vvc_intra_inv_angle_derive
int ff_vvc_intra_inv_angle_derive(int pred_mode)
Definition: vvc_intra_utils.c:188
h
h
Definition: vp9dsp_template.c:2038
ff_vvc_reconstruct
int ff_vvc_reconstruct(VVCLocalContext *lc, const int rs, const int rx, const int ry)
reconstruct a CTU
Definition: vvc_intra.c:659