From 3c4f47e8435fdc3957359e70c4b9b751ecdb566c Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" <rbultje@google.com> Date: Fri, 2 Nov 2012 11:22:57 -0700 Subject: [PATCH] Place non-static function prototypes in a header file. Change-Id: I7cd21b9f1e69f4e0b3338bfe27b3c67e4b47de58 --- vp9/common/postproc.c | 5 +-- vp9/common/reconintra.h | 2 +- vp9/common/rtcd_defs.sh | 6 +++ vp9/common/textblit.c | 1 + vp9/common/textblit.h | 19 ++++++++ vp9/decoder/decodframe.c | 1 + vp9/decoder/decodframe.h | 19 ++++++++ vp9/decoder/dequantize.c | 14 +----- vp9/decoder/idct_blk.c | 19 +------- vp9/decoder/onyxd_if.c | 2 +- vp9/encoder/encodeframe.c | 83 ++++++++++++++--------------------- vp9/encoder/encodeframe.h | 21 +++++++++ vp9/encoder/firstpass.c | 13 +----- vp9/encoder/onyx_if.c | 15 +------ vp9/encoder/onyx_int.h | 8 ++-- vp9/encoder/picklpf.c | 3 +- vp9/encoder/picklpf.h | 26 +++++++++++ vp9/encoder/rdopt.c | 68 +++------------------------- vp9/encoder/rdopt.h | 13 ++++-- vp9/encoder/temporal_filter.h | 4 ++ vp9/encoder/tokenize.c | 3 -- vp9/encoder/tokenize.h | 12 ++++- 22 files changed, 168 insertions(+), 189 deletions(-) create mode 100644 vp9/common/textblit.h create mode 100644 vp9/decoder/decodframe.h create mode 100644 vp9/encoder/encodeframe.h create mode 100644 vp9/encoder/picklpf.h diff --git a/vp9/common/postproc.c b/vp9/common/postproc.c index b947938e32..4c5748e7af 100644 --- a/vp9/common/postproc.c +++ b/vp9/common/postproc.c @@ -12,6 +12,7 @@ #include "vpx_ports/config.h" #include "vpx_scale/yv12config.h" #include "postproc.h" +#include "vp9/common/textblit.h" #include "vpx_scale/vpxscale.h" #include "systemdependent.h" @@ -126,10 +127,6 @@ const short vp9_rv[] = { }; -extern void vp9_blit_text(const char *msg, unsigned char *address, - const int pitch); -extern void vp9_blit_line(int x0, int x1, int y0, int y1, - unsigned char *image, const int pitch); /**************************************************************************** */ void vp9_post_proc_down_and_across_c(unsigned char *src_ptr, diff --git a/vp9/common/reconintra.h b/vp9/common/reconintra.h index bf990b4c67..7bc66707c5 100644 --- a/vp9/common/reconintra.h +++ b/vp9/common/reconintra.h @@ -13,6 +13,6 @@ #include "blockd.h" -extern void init_intra_left_above_pixels(MACROBLOCKD *xd); +extern void vp9_recon_intra_mbuv(MACROBLOCKD *xd); #endif // __INC_RECONINTRA_H diff --git a/vp9/common/rtcd_defs.sh b/vp9/common/rtcd_defs.sh index f909c18987..a36c32eba8 100644 --- a/vp9/common/rtcd_defs.sh +++ b/vp9/common/rtcd_defs.sh @@ -55,6 +55,12 @@ specialize vp9_dequant_idct_add_uv_block_8x8 prototype void vp9_dequant_idct_add_16x16 "short *input, short *dq, unsigned char *pred, unsigned char *dest, int pitch, int stride" specialize vp9_dequant_idct_add_16x16 +prototype void vp9_dequant_idct_add_8x8 "short *input, short *dq, unsigned char *pred, unsigned char *dest, int pitch, int stride" +specialize vp9_dequant_idct_add_8x8 + +prototype void vp9_dequant_dc_idct_add_8x8 "short *input, short *dq, unsigned char *pred, unsigned char *dest, int pitch, int stride, int Dc" +specialize vp9_dequant_dc_idct_add_8x8 + prototype void vp9_dequant_idct_add "short *input, short *dq, unsigned char *pred, unsigned char *dest, int pitch, int stride" specialize vp9_dequant_idct_add diff --git a/vp9/common/textblit.c b/vp9/common/textblit.c index e5a061b88e..601d298dc5 100644 --- a/vp9/common/textblit.c +++ b/vp9/common/textblit.c @@ -10,6 +10,7 @@ #include <stdlib.h> +#include "vp9/common/textblit.h" void vp9_blit_text(const char *msg, unsigned char *address, const int pitch) { int letter_bitmap; diff --git a/vp9/common/textblit.h b/vp9/common/textblit.h new file mode 100644 index 0000000000..39edbb09de --- /dev/null +++ b/vp9/common/textblit.h @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef __INC_TEXTBLIT_H +#define __INC_TEXTBLIT_H + +extern void vp9_blit_text(const char *msg, unsigned char *address, + const int pitch); +extern void vp9_blit_line(int x0, int x1, int y0, int y1, + unsigned char *image, const int pitch); + +#endif // __INC_TEXTBLIT_H diff --git a/vp9/decoder/decodframe.c b/vp9/decoder/decodframe.c index dd1d5ab0bf..9c25afb687 100644 --- a/vp9/decoder/decodframe.c +++ b/vp9/decoder/decodframe.c @@ -14,6 +14,7 @@ #include "vp9/common/reconintra.h" #include "vp9/common/reconintra4x4.h" #include "vp9/common/reconinter.h" +#include "vp9/decoder/decodframe.h" #include "detokenize.h" #include "vp9/common/invtrans.h" #include "vp9/common/alloccommon.h" diff --git a/vp9/decoder/decodframe.h b/vp9/decoder/decodframe.h new file mode 100644 index 0000000000..cc480798a5 --- /dev/null +++ b/vp9/decoder/decodframe.h @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + + +#ifndef __INC_DECODFRAME_H +#define __INC_DECODFRAME_H + +struct VP9Decompressor; + +extern void vp9_init_de_quantizer(struct VP9Decompressor *pbi); + +#endif // __INC_DECODFRAME_H diff --git a/vp9/decoder/dequantize.c b/vp9/decoder/dequantize.c index 508aaef5aa..d11fe38c23 100644 --- a/vp9/decoder/dequantize.c +++ b/vp9/decoder/dequantize.c @@ -9,24 +9,12 @@ */ -#include "vpx_ports/config.h" +#include "vpx_rtcd.h" #include "dequantize.h" #include "vp9/common/idct.h" #include "vpx_mem/vpx_mem.h" #include "onyxd_int.h" -extern void vp9_short_idct4x4llm_c(short *input, short *output, int pitch); -extern void vp9_short_idct4x4llm_1_c(short *input, short *output, int pitch); -extern void vp9_short_idct8x8_c(short *input, short *output, int pitch); -extern void vp9_short_idct8x8_1_c(short *input, short *output, int pitch); - -#if CONFIG_LOSSLESS -extern void vp9_short_inv_walsh4x4_x8_c(short *input, short *output, - int pitch); -extern void vp9_short_inv_walsh4x4_1_x8_c(short *input, short *output, - int pitch); -#endif - #ifdef DEC_DEBUG extern int dec_debug; #endif diff --git a/vp9/decoder/idct_blk.c b/vp9/decoder/idct_blk.c index e9605fc966..0ca429240b 100644 --- a/vp9/decoder/idct_blk.c +++ b/vp9/decoder/idct_blk.c @@ -8,25 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#include "vpx_ports/config.h" +#include "vpx_rtcd.h" #include "vp9/common/idct.h" -#include "dequantize.h" - -void vp9_dequant_dc_idct_add_c(short *input, short *dq, unsigned char *pred, - unsigned char *dest, int pitch, int stride, - int Dc); -void vp9_dequant_idct_add_c(short *input, short *dq, unsigned char *pred, - unsigned char *dest, int pitch, int stride); -void vp9_dc_only_idct_add_c(short input_dc, unsigned char *pred_ptr, - unsigned char *dst_ptr, int pitch, int stride); -#if CONFIG_LOSSLESS -void vp9_dequant_idct_add_lossless_c(short *input, short *dq, - unsigned char *pred, unsigned char *dest, - int pitch, int stride); -void vp9_dc_only_idct_add_lossless_c(short input_dc, unsigned char *pred_ptr, - unsigned char *dst_ptr, - int pitch, int stride); -#endif void vp9_dequant_dc_idct_add_y_block_c(short *q, short *dq, unsigned char *pre, diff --git a/vp9/decoder/onyxd_if.c b/vp9/decoder/onyxd_if.c index 2654985b81..c9f5820a03 100644 --- a/vp9/decoder/onyxd_if.c +++ b/vp9/decoder/onyxd_if.c @@ -26,12 +26,12 @@ #include "vpx_scale/vpxscale.h" #include "vp9/common/systemdependent.h" #include "vpx_ports/vpx_timer.h" +#include "vp9/decoder/decodframe.h" #include "detokenize.h" #if ARCH_ARM #include "vpx_ports/arm.h" #endif -extern void vp9_init_de_quantizer(VP9D_COMP *pbi); static int get_free_fb(VP9_COMMON *cm); static void ref_cnt_fb(int *buf, int *idx, int new_idx); diff --git a/vp9/encoder/encodeframe.c b/vp9/encoder/encodeframe.c index 47f7c37493..22fcc6b0a3 100644 --- a/vp9/encoder/encodeframe.c +++ b/vp9/encoder/encodeframe.c @@ -10,6 +10,7 @@ #include "vpx_ports/config.h" +#include "vp9/encoder/encodeframe.h" #include "encodemb.h" #include "encodemv.h" #include "vp9/common/common.h" @@ -27,6 +28,7 @@ #include "vp9/common/findnearmv.h" #include "vp9/common/reconintra.h" #include "vp9/common/seg_common.h" +#include "vp9/encoder/tokenize.h" #include "vpx_rtcd.h" #include <stdio.h> #include <math.h> @@ -54,35 +56,19 @@ int enc_debug = 0; int mb_row_debug, mb_col_debug; #endif -extern void vp9_initialize_me_consts(VP9_COMP *cpi, int QIndex); +static void encode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x, + TOKENEXTRA **t, int recon_yoffset, + int recon_uvoffset, int output_enabled); -extern void vp9_auto_select_speed(VP9_COMP *cpi); +static void encode_inter_superblock(VP9_COMP *cpi, MACROBLOCK *x, + TOKENEXTRA **t, int recon_yoffset, + int recon_uvoffset, int mb_col, int mb_row); -int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x, - int recon_yoffset, int recon_uvoffset, - int *returnrate, int *returndistortion); +static void encode_intra_macro_block(VP9_COMP *cpi, MACROBLOCK *x, + TOKENEXTRA **t, int output_enabled); -extern void vp9_pick_mode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x, - int recon_yoffset, - int recon_uvoffset, int *r, int *d); - -void vp9_build_block_offsets(MACROBLOCK *x); - -void vp9_setup_block_ptrs(MACROBLOCK *x); - -void vp9_encode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t, - int recon_yoffset, int recon_uvoffset, - int output_enabled); - -void vp9_encode_inter_superblock(VP9_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t, - int recon_yoffset, int recon_uvoffset, - int mb_col, int mb_row); - -void vp9_encode_intra_macro_block(VP9_COMP *cpi, MACROBLOCK *x, - TOKENEXTRA **t, int output_enabled); - -void vp9_encode_intra_super_block(VP9_COMP *cpi, MACROBLOCK *x, - TOKENEXTRA **t, int mb_col); +static void encode_intra_super_block(VP9_COMP *cpi, MACROBLOCK *x, + TOKENEXTRA **t, int mb_col); static void adjust_act_zbin(VP9_COMP *cpi, MACROBLOCK *x); @@ -634,7 +620,7 @@ static void pick_mb_modes(VP9_COMP *cpi, *totaldist += d; // Dummy encode, do not do the tokenization - vp9_encode_intra_macro_block(cpi, x, tp, 0); + encode_intra_macro_block(cpi, x, tp, 0); // Note the encoder may have changed the segment_id // Save the coding context @@ -661,8 +647,8 @@ static void pick_mb_modes(VP9_COMP *cpi, *totaldist += d; // Dummy encode, do not do the tokenization - vp9_encode_inter_macroblock(cpi, x, tp, - recon_yoffset, recon_uvoffset, 0); + encode_inter_macroblock(cpi, x, tp, + recon_yoffset, recon_uvoffset, 0); seg_id = mbmi->segment_id; if (cpi->mb.e_mbd.segmentation_enabled && seg_id == 0) { @@ -992,10 +978,10 @@ static void encode_sb(VP9_COMP *cpi, if (cm->frame_type == KEY_FRAME) { #if CONFIG_SUPERBLOCKS if (xd->mode_info_context->mbmi.encoded_as_sb) - vp9_encode_intra_super_block(cpi, x, tp, mb_col); + encode_intra_super_block(cpi, x, tp, mb_col); else #endif - vp9_encode_intra_macro_block(cpi, x, tp, 1); + encode_intra_macro_block(cpi, x, tp, 1); // Note the encoder may have changed the segment_id #ifdef MODE_STATS @@ -1018,12 +1004,12 @@ static void encode_sb(VP9_COMP *cpi, #if CONFIG_SUPERBLOCKS if (xd->mode_info_context->mbmi.encoded_as_sb) - vp9_encode_inter_superblock(cpi, x, tp, recon_yoffset, recon_uvoffset, - mb_col, mb_row); + encode_inter_superblock(cpi, x, tp, recon_yoffset, recon_uvoffset, + mb_col, mb_row); else #endif - vp9_encode_inter_macroblock(cpi, x, tp, - recon_yoffset, recon_uvoffset, 1); + encode_inter_macroblock(cpi, x, tp, + recon_yoffset, recon_uvoffset, 1); // Note the encoder may have changed the segment_id #ifdef MODE_STATS @@ -1851,10 +1837,8 @@ static void update_sb_skip_coeff_state(VP9_COMP *cpi, } } -void vp9_encode_intra_super_block(VP9_COMP *cpi, - MACROBLOCK *x, - TOKENEXTRA **t, - int mb_col) { +static void encode_intra_super_block(VP9_COMP *cpi, MACROBLOCK *x, + TOKENEXTRA **t, int mb_col) { const int output_enabled = 1; int n; MACROBLOCKD *xd = &x->e_mbd; @@ -1931,10 +1915,8 @@ void vp9_encode_intra_super_block(VP9_COMP *cpi, } #endif /* CONFIG_SUPERBLOCKS */ -void vp9_encode_intra_macro_block(VP9_COMP *cpi, - MACROBLOCK *x, - TOKENEXTRA **t, - int output_enabled) { +static void encode_intra_macro_block(VP9_COMP *cpi, MACROBLOCK *x, + TOKENEXTRA **t, int output_enabled) { MB_MODE_INFO * mbmi = &x->e_mbd.mode_info_context->mbmi; if ((cpi->oxcf.tuning == VP8_TUNE_SSIM) && output_enabled) { adjust_act_zbin(cpi, x); @@ -1984,11 +1966,9 @@ void vp9_encode_intra_macro_block(VP9_COMP *cpi, #endif } -extern void vp9_fix_contexts(MACROBLOCKD *xd); - -void vp9_encode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x, - TOKENEXTRA **t, int recon_yoffset, - int recon_uvoffset, int output_enabled) { +static void encode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x, + TOKENEXTRA **t, int recon_yoffset, + int recon_uvoffset, int output_enabled) { VP9_COMMON *cm = &cpi->common; MACROBLOCKD *const xd = &x->e_mbd; MB_MODE_INFO * mbmi = &xd->mode_info_context->mbmi; @@ -2172,9 +2152,10 @@ void vp9_encode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x, } #if CONFIG_SUPERBLOCKS -void vp9_encode_inter_superblock(VP9_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t, - int recon_yoffset, int recon_uvoffset, - int mb_col, int mb_row) { +static void encode_inter_superblock(VP9_COMP *cpi, MACROBLOCK *x, + TOKENEXTRA **t, int recon_yoffset, + int recon_uvoffset, + int mb_col, int mb_row) { const int output_enabled = 1; VP9_COMMON *cm = &cpi->common; MACROBLOCKD *xd = &x->e_mbd; diff --git a/vp9/encoder/encodeframe.h b/vp9/encoder/encodeframe.h new file mode 100644 index 0000000000..5693d681c9 --- /dev/null +++ b/vp9/encoder/encodeframe.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + + +#ifndef __INC_ENCODEFRAME_H +#define __INC_ENCODEFRAME_H + +struct macroblock; + +extern void vp9_build_block_offsets(struct macroblock *x); + +extern void vp9_setup_block_ptrs(struct macroblock *x); + +#endif // __INC_ENCODEFRAME_H diff --git a/vp9/encoder/firstpass.c b/vp9/encoder/firstpass.c index b9a3ac4c91..b57ce74678 100644 --- a/vp9/encoder/firstpass.c +++ b/vp9/encoder/firstpass.c @@ -18,12 +18,14 @@ #include "mcomp.h" #include "firstpass.h" #include "vpx_scale/vpxscale.h" +#include "vp9/encoder/encodeframe.h" #include "encodemb.h" #include "vp9/common/extend.h" #include "vp9/common/systemdependent.h" #include "vpx_mem/vpx_mem.h" #include "vp9/common/swapyv12buffer.h" #include <stdio.h> +#include "vp9/encoder/quantize.h" #include "rdopt.h" #include "ratectrl.h" #include "vp9/common/quant_common.h" @@ -38,17 +40,6 @@ #define IF_RTCD(x) NULL #endif -extern void vp9_build_block_offsets(MACROBLOCK *x); - -extern void vp9_setup_block_ptrs(MACROBLOCK *x); - -extern void vp9_frame_init_quantizer(VP9_COMP *cpi); - -extern void vp9_set_mbmode_and_mvs(MACROBLOCK *x, MB_PREDICTION_MODE mb, - int_mv *mv); - -extern void vp9_alloc_compressor_data(VP9_COMP *cpi); - #define IIFACTOR 12.5 #define IIKFACTOR1 12.5 #define IIKFACTOR2 15.0 diff --git a/vp9/encoder/onyx_if.c b/vp9/encoder/onyx_if.c index 3534c39f1c..02a3b05264 100644 --- a/vp9/encoder/onyx_if.c +++ b/vp9/encoder/onyx_if.c @@ -36,6 +36,7 @@ #include "vp9/common/pred_common.h" #include "vp9/encoder/rdopt.h" #include "bitstream.h" +#include "vp9/encoder/picklpf.h" #include "ratectrl.h" #if CONFIG_NEWBESTREFMV @@ -58,18 +59,8 @@ #define RTCD(x) NULL #endif -extern void vp9_pick_filter_level_fast(YV12_BUFFER_CONFIG *sd, VP9_COMP *cpi); - -extern void vp9_set_alt_lf_level(VP9_COMP *cpi, int filt_val); - -extern void vp9_pick_filter_level(YV12_BUFFER_CONFIG *sd, VP9_COMP *cpi); - extern void vp9_cmachine_specific_config(VP9_COMP *cpi); -extern void vp9_deblock_frame(YV12_BUFFER_CONFIG *source, - YV12_BUFFER_CONFIG *post, - int filt_lvl, int low_var_thresh, int flag); - extern void print_tree_update_probs(); #if HAVE_ARMV7 @@ -80,10 +71,6 @@ extern void vp8_yv12_copy_src_frame_func_neon(YV12_BUFFER_CONFIG *src_ybc, YV12_BUFFER_CONFIG *dst_ybc); #endif -int vp9_calc_ss_err(YV12_BUFFER_CONFIG *source, YV12_BUFFER_CONFIG *dest); - -extern void vp9_temporal_filter_prepare_c(VP9_COMP *cpi, int distance); - static void set_default_lf_deltas(VP9_COMP *cpi); #define DEFAULT_INTERP_FILTER EIGHTTAP /* SWITCHABLE for better performance */ diff --git a/vp9/encoder/onyx_int.h b/vp9/encoder/onyx_int.h index b1bd793255..97917d6348 100644 --- a/vp9/encoder/onyx_int.h +++ b/vp9/encoder/onyx_int.h @@ -764,11 +764,13 @@ void vp9_pack_bitstream(VP9_COMP *cpi, unsigned char *dest, void vp9_activity_masking(VP9_COMP *cpi, MACROBLOCK *x); -void vp9_tokenize_mb(VP9_COMP *, MACROBLOCKD *, TOKENEXTRA **, int dry_run); -void vp9_stuff_mb(VP9_COMP *cpi, MACROBLOCKD *xd, TOKENEXTRA **t, int dry_run); - void vp9_set_speed_features(VP9_COMP *cpi); +extern int vp9_calc_ss_err(YV12_BUFFER_CONFIG *source, + YV12_BUFFER_CONFIG *dest); + +extern void vp9_alloc_compressor_data(VP9_COMP *cpi); + #if CONFIG_DEBUG #define CHECK_MEM_ERROR(lval,expr) do {\ lval = (expr); \ diff --git a/vp9/encoder/picklpf.c b/vp9/encoder/picklpf.c index 71c0fb1f15..0107facc39 100644 --- a/vp9/encoder/picklpf.c +++ b/vp9/encoder/picklpf.c @@ -11,6 +11,7 @@ #include "vp9/common/onyxc_int.h" #include "onyx_int.h" +#include "vp9/encoder/picklpf.h" #include "quantize.h" #include "vpx_mem/vpx_mem.h" #include "vpx_scale/vpxscale.h" @@ -20,8 +21,6 @@ #include "vpx_ports/arm.h" #endif -extern int vp9_calc_ss_err(YV12_BUFFER_CONFIG *source, - YV12_BUFFER_CONFIG *dest); #if HAVE_ARMV7 extern void vp8_yv12_copy_frame_yonly_no_extend_frame_borders_neon(YV12_BUFFER_CONFIG *src_ybc, YV12_BUFFER_CONFIG *dst_ybc); #endif diff --git a/vp9/encoder/picklpf.h b/vp9/encoder/picklpf.h new file mode 100644 index 0000000000..9c3f442ae9 --- /dev/null +++ b/vp9/encoder/picklpf.h @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2010 The WebM project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + + +#ifndef __INC_PICKLPF_H +#define __INC_PICKLPF_H + +struct yv12_buffer_config; +struct VP9_COMP; + +extern void vp9_pick_filter_level_fast(struct yv12_buffer_config *sd, + struct VP9_COMP *cpi); + +extern void vp9_set_alt_lf_level(struct VP9_COMP *cpi, int filt_val); + +extern void vp9_pick_filter_level(struct yv12_buffer_config *sd, + struct VP9_COMP *cpi); + +#endif // __INC_PICKLPF_H diff --git a/vp9/encoder/rdopt.c b/vp9/encoder/rdopt.c index 1db912787b..41cd597dd4 100644 --- a/vp9/encoder/rdopt.c +++ b/vp9/encoder/rdopt.c @@ -51,9 +51,6 @@ #define IF_RTCD(x) NULL #endif -extern void vp9_mb_init_quantizer(VP9_COMP *cpi, MACROBLOCK *x); -extern void vp9_update_zbin_extra(VP9_COMP *cpi, MACROBLOCK *x); - #define MAXF(a,b) (((a) > (b)) ? (a) : (b)) #define INVALID_MV 0x80008000 @@ -391,59 +388,6 @@ void vp9_initialize_rd_consts(VP9_COMP *cpi, int QIndex) { } } -void vp9_auto_select_speed(VP9_COMP *cpi) { - int milliseconds_for_compress = (int)(1000000 / cpi->oxcf.frame_rate); - - milliseconds_for_compress = milliseconds_for_compress * (16 - cpi->oxcf.cpu_used) / 16; - - /* - // this is done during parameter valid check - if( cpi->oxcf.cpu_used > 16) - cpi->oxcf.cpu_used = 16; - if( cpi->oxcf.cpu_used < -16) - cpi->oxcf.cpu_used = -16; - */ - - if (cpi->avg_pick_mode_time < milliseconds_for_compress && - (cpi->avg_encode_time - cpi->avg_pick_mode_time) < - milliseconds_for_compress) { - if (cpi->avg_pick_mode_time == 0) { - cpi->Speed = 4; - } else { - if (milliseconds_for_compress * 100 < cpi->avg_encode_time * 95) { - cpi->Speed += 2; - cpi->avg_pick_mode_time = 0; - cpi->avg_encode_time = 0; - - if (cpi->Speed > 16) { - cpi->Speed = 16; - } - } - - if (milliseconds_for_compress * 100 > - cpi->avg_encode_time * auto_speed_thresh[cpi->Speed]) { - cpi->Speed -= 1; - cpi->avg_pick_mode_time = 0; - cpi->avg_encode_time = 0; - - // In real-time mode, cpi->speed is in [4, 16]. - if (cpi->Speed < 4) { // if ( cpi->Speed < 0 ) - cpi->Speed = 4; // cpi->Speed = 0; - } - } - } - } else { - cpi->Speed += 4; - - if (cpi->Speed > 16) - cpi->Speed = 16; - - - cpi->avg_pick_mode_time = 0; - cpi->avg_encode_time = 0; - } -} - int vp9_block_error_c(short *coeff, short *dqcoeff, int block_size) { int i, error = 0; @@ -3527,10 +3471,10 @@ static int64_t handle_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, return this_rd; // if 0, this will be re-calculated by caller } -void vp9_rd_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, - int recon_yoffset, int recon_uvoffset, - int *returnrate, int *returndistortion, - int64_t *returnintra) { +static void rd_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, + int recon_yoffset, int recon_uvoffset, + int *returnrate, int *returndistortion, + int64_t *returnintra) { VP9_COMMON *cm = &cpi->common; MACROBLOCKD *xd = &x->e_mbd; union b_mode_info best_bmodes[16]; @@ -4834,8 +4778,8 @@ void vp9_pick_mode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x, { int zbin_mode_boost_enabled = cpi->zbin_mode_boost_enabled; - vp9_rd_pick_inter_mode(cpi, x, recon_yoffset, recon_uvoffset, &rate, - &distortion, &intra_error); + rd_pick_inter_mode(cpi, x, recon_yoffset, recon_uvoffset, &rate, + &distortion, &intra_error); /* restore cpi->zbin_mode_boost_enabled */ cpi->zbin_mode_boost_enabled = zbin_mode_boost_enabled; diff --git a/vp9/encoder/rdopt.h b/vp9/encoder/rdopt.h index ce7c8ca6cf..109dbfe449 100644 --- a/vp9/encoder/rdopt.h +++ b/vp9/encoder/rdopt.h @@ -17,10 +17,7 @@ extern void vp9_initialize_rd_consts(VP9_COMP *cpi, int Qvalue); -extern void vp9_rd_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, - int recon_yoffset, int recon_uvoffset, - int *returnrate, int *returndistortion, - int64_t *returnintra); +extern void vp9_initialize_me_consts(VP9_COMP *cpi, int QIndex); extern void vp9_rd_pick_intra_mode(VP9_COMP *cpi, MACROBLOCK *x, int *r, int *d); @@ -28,6 +25,14 @@ extern void vp9_rd_pick_intra_mode(VP9_COMP *cpi, MACROBLOCK *x, extern void vp9_rd_pick_intra_mode_sb(VP9_COMP *cpi, MACROBLOCK *x, int *r, int *d); +extern void vp9_pick_mode_inter_macroblock(VP9_COMP *cpi, MACROBLOCK *x, + int recon_yoffset, + int recon_uvoffset, int *r, int *d); + +extern int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x, + int recon_yoffset, int recon_uvoffset, + int *returnrate, int *returndist); + extern void vp9_mv_pred(VP9_COMP *cpi, MACROBLOCKD *xd, const MODE_INFO *here, int_mv *mvp, int refframe, int *ref_frame_sign_bias, diff --git a/vp9/encoder/temporal_filter.h b/vp9/encoder/temporal_filter.h index b396abfe85..0d9161db15 100644 --- a/vp9/encoder/temporal_filter.h +++ b/vp9/encoder/temporal_filter.h @@ -44,4 +44,8 @@ typedef struct { #define TEMPORAL_INVOKE(ctx,fn) vp9_temporal_filter_##fn #endif +struct VP9_COMP; + +extern void vp9_temporal_filter_prepare_c(struct VP9_COMP *cpi, int distance); + #endif // __INC_TEMPORAL_FILTER_H diff --git a/vp9/encoder/tokenize.c b/vp9/encoder/tokenize.c index 3c5c1c7a22..bf835b7f2e 100644 --- a/vp9/encoder/tokenize.c +++ b/vp9/encoder/tokenize.c @@ -48,9 +48,6 @@ extern unsigned int hybrid_tree_update_hist_16x16[BLOCK_TYPES_16X16][COEF_BANDS] [PREV_COEF_CONTEXTS][ENTROPY_NODES] [2]; #endif /* ENTROPY_STATS */ -void vp9_stuff_mb(VP9_COMP *cpi, MACROBLOCKD *xd, TOKENEXTRA **t, int dry_run); -void vp9_fix_contexts(MACROBLOCKD *xd); - static TOKENVALUE dct_value_tokens[DCT_MAX_VALUE * 2]; const TOKENVALUE *vp9_dct_value_tokens_ptr; static int dct_value_cost[DCT_MAX_VALUE * 2]; diff --git a/vp9/encoder/tokenize.h b/vp9/encoder/tokenize.h index bef52c5058..648e8cd4b5 100644 --- a/vp9/encoder/tokenize.h +++ b/vp9/encoder/tokenize.h @@ -29,14 +29,22 @@ typedef struct { unsigned char skip_eob_node; } TOKENEXTRA; -int rd_cost_mby(MACROBLOCKD *); - extern int vp9_mby_is_skippable_4x4(MACROBLOCKD *xd, int has_y2_block); extern int vp9_mbuv_is_skippable_4x4(MACROBLOCKD *xd); extern int vp9_mby_is_skippable_8x8(MACROBLOCKD *xd, int has_y2_block); extern int vp9_mbuv_is_skippable_8x8(MACROBLOCKD *xd); extern int vp9_mby_is_skippable_16x16(MACROBLOCKD *xd); +struct VP9_COMP; + +extern void vp9_tokenize_mb(struct VP9_COMP *cpi, MACROBLOCKD *xd, + TOKENEXTRA **t, int dry_run); + +extern void vp9_stuff_mb(struct VP9_COMP *cpi, MACROBLOCKD *xd, + TOKENEXTRA **t, int dry_run); + +extern void vp9_fix_contexts(MACROBLOCKD *xd); + #ifdef ENTROPY_STATS void init_context_counters(); void print_context_counters(); -- GitLab