digiKam
encoder-syntax.h
Go to the documentation of this file.
1 /*
2  * H.265 video codec.
3  * Copyright (c) 2013-2014 struktur AG, Dirk Farin <farin@struktur.de>
4  *
5  * Authors: Dirk Farin <farin@struktur.de>
6  *
7  * This file is part of libde265.
8  *
9  * libde265 is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU Lesser General Public License as
11  * published by the Free Software Foundation, either version 3 of
12  * the License, or (at your option) any later version.
13  *
14  * libde265 is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with libde265. If not, see <http://www.gnu.org/licenses/>.
21  */
22 
23 #ifndef ENCODER_SYNTAX_H
24 #define ENCODER_SYNTAX_H
25 
26 #include "libde265/image.h"
28 
29 
31  CABAC_encoder* cabac,
32  int x0, int y0, int ctDepth, int split_flag);
33 
35  CABAC_encoder* cabac,
36  const enc_tb* tb, const enc_cb* cb,
37  int x0,int y0, int xBase,int yBase,
38  int log2TrafoSize, int trafoDepth, int blkIdx,
39  int MaxTrafoDepth, int IntraSplitFlag, bool recurse);
40 
42  CABAC_encoder* cabac,
43  const enc_cb* cb, int x0,int y0, int log2CbSize, bool recurse);
44 
45 /* returns
46  1 - forced split
47  0 - forced non-split
48  -1 - optional split
49 */
50 enum SplitType {
53  OptionalSplit = 2
54 };
55 
57  int x0,int y0, int log2CbSize);
58 
59 
60 /* Compute how much rate is required for sending the chroma CBF flags
61  in the whole TB tree.
62  */
64  enc_tb* tb, int log2TrafoSize, int trafoDepth);
65 
66 
68  CABAC_encoder* cabac,
69  int log2TrafoSize, int split_flag);
70 
72  CABAC_encoder* cabac,
73  int mergeIdx);
74 
76  CABAC_encoder* cabac,
77  const enc_cb* cb,
78  bool skip);
79 
81  bool zeroTrafoDepth, int cbf_luma);
82 
84  int trafoDepth, int cbf_chroma);
85 
87  CABAC_encoder* cabac,
88  const enc_tb* tb, const enc_cb* cb,
89  int x0,int y0, int xBase,int yBase,
90  int log2TrafoSize, int trafoDepth, int blkIdx);
91 
92 
94  CABAC_encoder* cabac,
95  const enc_cb* cb, int x0,int y0, int log2CbSize, int ctDepth,
96  bool recurse);
97 
99  CABAC_encoder* cabac,
100  enc_cb* cb, int ctbX,int ctbY);
101 
102 #endif
Definition: cabac.h:166
Definition: cabac.h:55
Definition: encoder-types.h:248
Definition: encoder-types.h:135
Definition: encoder-context.h:39
Definition: sps.h:86
void encode_transform_unit(encoder_context *ectx, CABAC_encoder *cabac, const enc_tb *tb, const enc_cb *cb, int x0, int y0, int xBase, int yBase, int log2TrafoSize, int trafoDepth, int blkIdx)
void encode_split_transform_flag(encoder_context *ectx, CABAC_encoder *cabac, int log2TrafoSize, int split_flag)
SplitType get_split_type(const seq_parameter_set *sps, int x0, int y0, int log2CbSize)
void encode_ctb(encoder_context *ectx, CABAC_encoder *cabac, enc_cb *cb, int ctbX, int ctbY)
void encode_transform_tree(encoder_context *ectx, CABAC_encoder *cabac, const enc_tb *tb, const enc_cb *cb, int x0, int y0, int xBase, int yBase, int log2TrafoSize, int trafoDepth, int blkIdx, int MaxTrafoDepth, int IntraSplitFlag, bool recurse)
void encode_cbf_luma(CABAC_encoder *cabac, bool zeroTrafoDepth, int cbf_luma)
void encode_quadtree(encoder_context *ectx, CABAC_encoder *cabac, const enc_cb *cb, int x0, int y0, int log2CbSize, int ctDepth, bool recurse)
void encode_cu_skip_flag(encoder_context *ectx, CABAC_encoder *cabac, const enc_cb *cb, bool skip)
void encode_merge_idx(encoder_context *ectx, CABAC_encoder *cabac, int mergeIdx)
float recursive_cbfChroma_rate(CABAC_encoder_estim *cabac, enc_tb *tb, int log2TrafoSize, int trafoDepth)
void encode_cbf_chroma(CABAC_encoder *cabac, int trafoDepth, int cbf_chroma)
void encode_coding_unit(encoder_context *ectx, CABAC_encoder *cabac, const enc_cb *cb, int x0, int y0, int log2CbSize, bool recurse)
void encode_split_cu_flag(encoder_context *ectx, CABAC_encoder *cabac, int x0, int y0, int ctDepth, int split_flag)
SplitType
Definition: encoder-syntax.h:50
@ ForcedNonSplit
Definition: encoder-syntax.h:51
@ ForcedSplit
Definition: encoder-syntax.h:52
@ OptionalSplit
Definition: encoder-syntax.h:53