digiKam
cb-skip.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 CB_SKIP_H
24
#define CB_SKIP_H
25
26
#include "
libde265/nal-parser.h
"
27
#include "
libde265/decctx.h
"
28
#include "
libde265/slice.h
"
29
#include "
libde265/scan.h
"
30
#include "
libde265/intrapred.h
"
31
#include "
libde265/transform.h
"
32
#include "
libde265/fallback-dct.h
"
33
#include "
libde265/quality.h
"
34
#include "
libde265/fallback.h
"
35
#include "
libde265/configparam.h
"
36
37
#include "
libde265/encoder/algo/algo.h
"
38
#include "
libde265/encoder/algo/cb-mergeindex.h
"
39
40
41
// ========== CB Skip/Inter decision ==========
42
43
class
Algo_CB_Skip
:
public
Algo_CB
44
{
45
public
:
46
virtual
~Algo_CB_Skip
() { }
47
48
void
setSkipAlgo
(
Algo_CB_MergeIndex
* algo) {
49
mSkipAlgo
= algo;
50
mSkipAlgo
->
set_code_residual
(
false
);
51
}
52
53
void
setNonSkipAlgo
(
Algo_CB
* algo) {
mNonSkipAlgo
= algo; }
54
55
const
char
*
name
()
const
{
return
"cb-skip"
; }
56
57
protected
:
58
Algo_CB_MergeIndex
*
mSkipAlgo
;
59
Algo_CB
*
mNonSkipAlgo
;
60
};
61
62
class
Algo_CB_Skip_BruteForce
:
public
Algo_CB_Skip
63
{
64
public
:
65
virtual
enc_cb
*
analyze
(
encoder_context
*,
66
context_model_table
&,
67
enc_cb
* cb);
68
69
const
char
*
name
()
const
{
return
"cb-skip-bruteforce"
; }
70
};
71
72
#endif
algo.h
cb-mergeindex.h
Algo_CB_MergeIndex
Definition:
cb-mergeindex.h:44
Algo_CB_MergeIndex::set_code_residual
void set_code_residual(bool flag=true)
Definition:
cb-mergeindex.h:49
Algo_CB_Skip_BruteForce
Definition:
cb-skip.h:63
Algo_CB_Skip_BruteForce::analyze
virtual enc_cb * analyze(encoder_context *, context_model_table &, enc_cb *cb)
Algo_CB_Skip_BruteForce::name
const char * name() const
Definition:
cb-skip.h:69
Algo_CB_Skip
Definition:
cb-skip.h:44
Algo_CB_Skip::setSkipAlgo
void setSkipAlgo(Algo_CB_MergeIndex *algo)
Definition:
cb-skip.h:48
Algo_CB_Skip::name
const char * name() const
Definition:
cb-skip.h:55
Algo_CB_Skip::setNonSkipAlgo
void setNonSkipAlgo(Algo_CB *algo)
Definition:
cb-skip.h:53
Algo_CB_Skip::mSkipAlgo
Algo_CB_MergeIndex * mSkipAlgo
Definition:
cb-skip.h:58
Algo_CB_Skip::~Algo_CB_Skip
virtual ~Algo_CB_Skip()
Definition:
cb-skip.h:46
Algo_CB_Skip::mNonSkipAlgo
Algo_CB * mNonSkipAlgo
Definition:
cb-skip.h:59
Algo_CB
Definition:
algo.h:67
context_model_table
Definition:
contextmodel.h:100
enc_cb
Definition:
encoder-types.h:248
encoder_context
Definition:
encoder-context.h:39
configparam.h
decctx.h
fallback-dct.h
fallback.h
intrapred.h
nal-parser.h
quality.h
scan.h
slice.h
transform.h
core
libs
heifutils
libde265
encoder
algo
cb-skip.h
Generated by
1.9.1