encodeframe.h 1.82 KB
Newer Older
Jingning Han's avatar
Jingning Han committed
1
/*
Yaowu Xu's avatar
Yaowu Xu committed
2
 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
Jingning Han's avatar
Jingning Han committed
3
 *
Yaowu Xu's avatar
Yaowu Xu committed
4 5 6 7 8 9
 * This source code is subject to the terms of the BSD 2 Clause License and
 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
 * was not distributed with this source code in the LICENSE file, you can
 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
 * Media Patent License 1.0 was not distributed with this source code in the
 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
Jingning Han's avatar
Jingning Han committed
10 11
 */

Yaowu Xu's avatar
Yaowu Xu committed
12 13
#ifndef AV1_ENCODER_ENCODEFRAME_H_
#define AV1_ENCODER_ENCODEFRAME_H_
Jingning Han's avatar
Jingning Han committed
14

Yaowu Xu's avatar
Yaowu Xu committed
15
#include "aom/aom_integer.h"
Angie Chiang's avatar
Angie Chiang committed
16 17
#include "av1/common/blockd.h"
#include "av1/common/enums.h"
Jingning Han's avatar
Jingning Han committed
18 19 20 21 22 23 24

#ifdef __cplusplus
extern "C" {
#endif

struct macroblock;
struct yv12_buffer_config;
Yaowu Xu's avatar
Yaowu Xu committed
25
struct AV1_COMP;
Jingning Han's avatar
Jingning Han committed
26 27 28 29 30 31 32 33 34
struct ThreadData;

// Constants used in SOURCE_VAR_BASED_PARTITION
#define VAR_HIST_MAX_BG_VAR 1000
#define VAR_HIST_FACTOR 10
#define VAR_HIST_BINS (VAR_HIST_MAX_BG_VAR / VAR_HIST_FACTOR + 1)
#define VAR_HIST_LARGE_CUT_OFF 75
#define VAR_HIST_SMALL_CUT_OFF 45

Yaowu Xu's avatar
Yaowu Xu committed
35 36 37
void av1_setup_src_planes(struct macroblock *x,
                          const struct yv12_buffer_config *src, int mi_row,
                          int mi_col);
Jingning Han's avatar
Jingning Han committed
38

Yaowu Xu's avatar
Yaowu Xu committed
39
void av1_encode_frame(struct AV1_COMP *cpi);
Jingning Han's avatar
Jingning Han committed
40

Yaowu Xu's avatar
Yaowu Xu committed
41 42 43
void av1_init_tile_data(struct AV1_COMP *cpi);
void av1_encode_tile(struct AV1_COMP *cpi, struct ThreadData *td, int tile_row,
                     int tile_col);
Jingning Han's avatar
Jingning Han committed
44

Yaowu Xu's avatar
Yaowu Xu committed
45
void av1_set_variance_partition_thresholds(struct AV1_COMP *cpi, int q);
Jingning Han's avatar
Jingning Han committed
46

Angie Chiang's avatar
Angie Chiang committed
47 48
void av1_update_tx_type_count(const struct AV1Common *cm, MACROBLOCKD *xd,
#if CONFIG_LV_MAP
49
                              int block, int plane,
Angie Chiang's avatar
Angie Chiang committed
50 51 52 53
#endif
                              BLOCK_SIZE bsize, TX_SIZE tx_size,
                              FRAME_COUNTS *counts);

Jingning Han's avatar
Jingning Han committed
54 55 56 57
#ifdef __cplusplus
}  // extern "C"
#endif

Yaowu Xu's avatar
Yaowu Xu committed
58
#endif  // AV1_ENCODER_ENCODEFRAME_H_