Merge changes from topic 'missing-proto'
* changes: onyxd_int.h: add missing prototypes onyxd.h: add vp8dx_references_buffer prototype vp[89],vpx_dsp: add missing includes vp8,encodeframe.h: correct prototypes vp8: add temporal_filter.h add picklpf.h add ethreading.h vp8,bitstream.h: add missing prototypes vp8: remove vp8_fast_quantize_b_mmx vp8,loopfilter_filters: make some functions static vp9_ratectrl: make adjust_gf_boost_lag_one_pass_vbr static vp9_encodeframe: make scale_part_thresh_sumdiff static vp9_alt_ref_aq: correct vp9_alt_ref_aq_create proto tiny_ssim: make some functions static
This commit is contained in:
commit
88a302e743
@ -17,9 +17,9 @@
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "./y4minput.h"
|
||||
|
||||
void vp8_ssim_parms_8x8_c(unsigned char *s, int sp, unsigned char *r, int rp,
|
||||
uint32_t *sum_s, uint32_t *sum_r, uint32_t *sum_sq_s,
|
||||
uint32_t *sum_sq_r, uint32_t *sum_sxr) {
|
||||
static void ssim_parms_8x8(unsigned char *s, int sp, unsigned char *r, int rp,
|
||||
uint32_t *sum_s, uint32_t *sum_r, uint32_t *sum_sq_s,
|
||||
uint32_t *sum_sq_r, uint32_t *sum_sxr) {
|
||||
int i, j;
|
||||
for (i = 0; i < 8; i++, s += sp, r += rp) {
|
||||
for (j = 0; j < 8; j++) {
|
||||
@ -56,16 +56,15 @@ static double similarity(uint32_t sum_s, uint32_t sum_r, uint32_t sum_sq_s,
|
||||
|
||||
static double ssim_8x8(unsigned char *s, int sp, unsigned char *r, int rp) {
|
||||
uint32_t sum_s = 0, sum_r = 0, sum_sq_s = 0, sum_sq_r = 0, sum_sxr = 0;
|
||||
vp8_ssim_parms_8x8_c(s, sp, r, rp, &sum_s, &sum_r, &sum_sq_s, &sum_sq_r,
|
||||
&sum_sxr);
|
||||
ssim_parms_8x8(s, sp, r, rp, &sum_s, &sum_r, &sum_sq_s, &sum_sq_r, &sum_sxr);
|
||||
return similarity(sum_s, sum_r, sum_sq_s, sum_sq_r, sum_sxr, 64);
|
||||
}
|
||||
|
||||
// We are using a 8x8 moving window with starting location of each 8x8 window
|
||||
// on the 4x4 pixel grid. Such arrangement allows the windows to overlap
|
||||
// block boundaries to penalize blocking artifacts.
|
||||
double vp8_ssim2(unsigned char *img1, unsigned char *img2, int stride_img1,
|
||||
int stride_img2, int width, int height) {
|
||||
static double ssim2(unsigned char *img1, unsigned char *img2, int stride_img1,
|
||||
int stride_img2, int width, int height) {
|
||||
int i, j;
|
||||
int samples = 0;
|
||||
double ssim_total = 0;
|
||||
@ -103,7 +102,7 @@ static uint64_t calc_plane_error(uint8_t *orig, int orig_stride, uint8_t *recon,
|
||||
}
|
||||
|
||||
#define MAX_PSNR 100
|
||||
double vp9_mse2psnr(double samples, double peak, double mse) {
|
||||
static double mse2psnr(double samples, double peak, double mse) {
|
||||
double psnr;
|
||||
|
||||
if (mse > 0.0)
|
||||
@ -129,7 +128,8 @@ typedef struct input_file {
|
||||
} input_file_t;
|
||||
|
||||
// Open a file and determine if its y4m or raw. If y4m get the header.
|
||||
int open_input_file(const char *file_name, input_file_t *input, int w, int h) {
|
||||
static int open_input_file(const char *file_name, input_file_t *input, int w,
|
||||
int h) {
|
||||
char y4m_buf[4];
|
||||
size_t r1;
|
||||
input->type = RAW_YUV;
|
||||
@ -159,7 +159,7 @@ int open_input_file(const char *file_name, input_file_t *input, int w, int h) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void close_input_file(input_file_t *in) {
|
||||
static void close_input_file(input_file_t *in) {
|
||||
if (in->file) fclose(in->file);
|
||||
if (in->type == Y4M) {
|
||||
vpx_img_free(&in->img);
|
||||
@ -168,8 +168,8 @@ void close_input_file(input_file_t *in) {
|
||||
}
|
||||
}
|
||||
|
||||
size_t read_input_file(input_file_t *in, unsigned char **y, unsigned char **u,
|
||||
unsigned char **v) {
|
||||
static size_t read_input_file(input_file_t *in, unsigned char **y,
|
||||
unsigned char **u, unsigned char **v) {
|
||||
size_t r1 = 0;
|
||||
switch (in->type) {
|
||||
case Y4M:
|
||||
@ -287,7 +287,7 @@ int main(int argc, char *argv[]) {
|
||||
break;
|
||||
}
|
||||
#define psnr_and_ssim(ssim, psnr, buf0, buf1, w, h) \
|
||||
ssim = vp8_ssim2(buf0, buf1, w, w, w, h); \
|
||||
ssim = ssim2(buf0, buf1, w, w, w, h); \
|
||||
psnr = calc_plane_error(buf0, w, buf1, w, w, h);
|
||||
|
||||
if (n_frames == allocated_frames) {
|
||||
@ -321,11 +321,11 @@ int main(int argc, char *argv[]) {
|
||||
ssimuavg += ssimu[i];
|
||||
ssimvavg += ssimv[i];
|
||||
|
||||
frame_psnr = vp9_mse2psnr(w * h * 6 / 4, 255.0,
|
||||
(double)psnry[i] + psnru[i] + psnrv[i]);
|
||||
frame_psnry = vp9_mse2psnr(w * h * 4 / 4, 255.0, (double)psnry[i]);
|
||||
frame_psnru = vp9_mse2psnr(w * h * 1 / 4, 255.0, (double)psnru[i]);
|
||||
frame_psnrv = vp9_mse2psnr(w * h * 1 / 4, 255.0, (double)psnrv[i]);
|
||||
frame_psnr =
|
||||
mse2psnr(w * h * 6 / 4, 255.0, (double)psnry[i] + psnru[i] + psnrv[i]);
|
||||
frame_psnry = mse2psnr(w * h * 4 / 4, 255.0, (double)psnry[i]);
|
||||
frame_psnru = mse2psnr(w * h * 1 / 4, 255.0, (double)psnru[i]);
|
||||
frame_psnrv = mse2psnr(w * h * 1 / 4, 255.0, (double)psnrv[i]);
|
||||
|
||||
psnravg += frame_psnr;
|
||||
psnryavg += frame_psnry;
|
||||
@ -367,10 +367,10 @@ int main(int argc, char *argv[]) {
|
||||
puts("");
|
||||
|
||||
psnrglb = psnryglb + psnruglb + psnrvglb;
|
||||
psnrglb = vp9_mse2psnr((double)n_frames * w * h * 6 / 4, 255.0, psnrglb);
|
||||
psnryglb = vp9_mse2psnr((double)n_frames * w * h * 4 / 4, 255.0, psnryglb);
|
||||
psnruglb = vp9_mse2psnr((double)n_frames * w * h * 1 / 4, 255.0, psnruglb);
|
||||
psnrvglb = vp9_mse2psnr((double)n_frames * w * h * 1 / 4, 255.0, psnrvglb);
|
||||
psnrglb = mse2psnr((double)n_frames * w * h * 6 / 4, 255.0, psnrglb);
|
||||
psnryglb = mse2psnr((double)n_frames * w * h * 4 / 4, 255.0, psnryglb);
|
||||
psnruglb = mse2psnr((double)n_frames * w * h * 1 / 4, 255.0, psnruglb);
|
||||
psnrvglb = mse2psnr((double)n_frames * w * h * 1 / 4, 255.0, psnrvglb);
|
||||
|
||||
printf("GlbPSNR: %lf\n", psnrglb);
|
||||
printf("GlbPSNR-Y: %lf\n", psnryglb);
|
||||
|
@ -86,10 +86,12 @@ static void vp8_filter(signed char mask, uc hev, uc *op1, uc *op0, uc *oq0,
|
||||
u = vp8_signed_char_clamp(ps1 + filter_value);
|
||||
*op1 = u ^ 0x80;
|
||||
}
|
||||
void vp8_loop_filter_horizontal_edge_c(unsigned char *s, int p, /* pitch */
|
||||
const unsigned char *blimit,
|
||||
const unsigned char *limit,
|
||||
const unsigned char *thresh, int count) {
|
||||
|
||||
static void loop_filter_horizontal_edge_c(unsigned char *s, int p, /* pitch */
|
||||
const unsigned char *blimit,
|
||||
const unsigned char *limit,
|
||||
const unsigned char *thresh,
|
||||
int count) {
|
||||
int hev = 0; /* high edge variance */
|
||||
signed char mask = 0;
|
||||
int i = 0;
|
||||
@ -109,10 +111,11 @@ void vp8_loop_filter_horizontal_edge_c(unsigned char *s, int p, /* pitch */
|
||||
} while (++i < count * 8);
|
||||
}
|
||||
|
||||
void vp8_loop_filter_vertical_edge_c(unsigned char *s, int p,
|
||||
const unsigned char *blimit,
|
||||
const unsigned char *limit,
|
||||
const unsigned char *thresh, int count) {
|
||||
static void loop_filter_vertical_edge_c(unsigned char *s, int p,
|
||||
const unsigned char *blimit,
|
||||
const unsigned char *limit,
|
||||
const unsigned char *thresh,
|
||||
int count) {
|
||||
int hev = 0; /* high edge variance */
|
||||
signed char mask = 0;
|
||||
int i = 0;
|
||||
@ -185,11 +188,11 @@ static void vp8_mbfilter(signed char mask, uc hev, uc *op2, uc *op1, uc *op0,
|
||||
*op2 = s ^ 0x80;
|
||||
}
|
||||
|
||||
void vp8_mbloop_filter_horizontal_edge_c(unsigned char *s, int p,
|
||||
const unsigned char *blimit,
|
||||
const unsigned char *limit,
|
||||
const unsigned char *thresh,
|
||||
int count) {
|
||||
static void mbloop_filter_horizontal_edge_c(unsigned char *s, int p,
|
||||
const unsigned char *blimit,
|
||||
const unsigned char *limit,
|
||||
const unsigned char *thresh,
|
||||
int count) {
|
||||
signed char hev = 0; /* high edge variance */
|
||||
signed char mask = 0;
|
||||
int i = 0;
|
||||
@ -210,10 +213,11 @@ void vp8_mbloop_filter_horizontal_edge_c(unsigned char *s, int p,
|
||||
} while (++i < count * 8);
|
||||
}
|
||||
|
||||
void vp8_mbloop_filter_vertical_edge_c(unsigned char *s, int p,
|
||||
const unsigned char *blimit,
|
||||
const unsigned char *limit,
|
||||
const unsigned char *thresh, int count) {
|
||||
static void mbloop_filter_vertical_edge_c(unsigned char *s, int p,
|
||||
const unsigned char *blimit,
|
||||
const unsigned char *limit,
|
||||
const unsigned char *thresh,
|
||||
int count) {
|
||||
signed char hev = 0; /* high edge variance */
|
||||
signed char mask = 0;
|
||||
int i = 0;
|
||||
@ -295,17 +299,17 @@ void vp8_loop_filter_simple_vertical_edge_c(unsigned char *s, int p,
|
||||
void vp8_loop_filter_mbh_c(unsigned char *y_ptr, unsigned char *u_ptr,
|
||||
unsigned char *v_ptr, int y_stride, int uv_stride,
|
||||
loop_filter_info *lfi) {
|
||||
vp8_mbloop_filter_horizontal_edge_c(y_ptr, y_stride, lfi->mblim, lfi->lim,
|
||||
lfi->hev_thr, 2);
|
||||
mbloop_filter_horizontal_edge_c(y_ptr, y_stride, lfi->mblim, lfi->lim,
|
||||
lfi->hev_thr, 2);
|
||||
|
||||
if (u_ptr) {
|
||||
vp8_mbloop_filter_horizontal_edge_c(u_ptr, uv_stride, lfi->mblim, lfi->lim,
|
||||
lfi->hev_thr, 1);
|
||||
mbloop_filter_horizontal_edge_c(u_ptr, uv_stride, lfi->mblim, lfi->lim,
|
||||
lfi->hev_thr, 1);
|
||||
}
|
||||
|
||||
if (v_ptr) {
|
||||
vp8_mbloop_filter_horizontal_edge_c(v_ptr, uv_stride, lfi->mblim, lfi->lim,
|
||||
lfi->hev_thr, 1);
|
||||
mbloop_filter_horizontal_edge_c(v_ptr, uv_stride, lfi->mblim, lfi->lim,
|
||||
lfi->hev_thr, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -313,17 +317,17 @@ void vp8_loop_filter_mbh_c(unsigned char *y_ptr, unsigned char *u_ptr,
|
||||
void vp8_loop_filter_mbv_c(unsigned char *y_ptr, unsigned char *u_ptr,
|
||||
unsigned char *v_ptr, int y_stride, int uv_stride,
|
||||
loop_filter_info *lfi) {
|
||||
vp8_mbloop_filter_vertical_edge_c(y_ptr, y_stride, lfi->mblim, lfi->lim,
|
||||
lfi->hev_thr, 2);
|
||||
mbloop_filter_vertical_edge_c(y_ptr, y_stride, lfi->mblim, lfi->lim,
|
||||
lfi->hev_thr, 2);
|
||||
|
||||
if (u_ptr) {
|
||||
vp8_mbloop_filter_vertical_edge_c(u_ptr, uv_stride, lfi->mblim, lfi->lim,
|
||||
lfi->hev_thr, 1);
|
||||
mbloop_filter_vertical_edge_c(u_ptr, uv_stride, lfi->mblim, lfi->lim,
|
||||
lfi->hev_thr, 1);
|
||||
}
|
||||
|
||||
if (v_ptr) {
|
||||
vp8_mbloop_filter_vertical_edge_c(v_ptr, uv_stride, lfi->mblim, lfi->lim,
|
||||
lfi->hev_thr, 1);
|
||||
mbloop_filter_vertical_edge_c(v_ptr, uv_stride, lfi->mblim, lfi->lim,
|
||||
lfi->hev_thr, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -331,21 +335,21 @@ void vp8_loop_filter_mbv_c(unsigned char *y_ptr, unsigned char *u_ptr,
|
||||
void vp8_loop_filter_bh_c(unsigned char *y_ptr, unsigned char *u_ptr,
|
||||
unsigned char *v_ptr, int y_stride, int uv_stride,
|
||||
loop_filter_info *lfi) {
|
||||
vp8_loop_filter_horizontal_edge_c(y_ptr + 4 * y_stride, y_stride, lfi->blim,
|
||||
lfi->lim, lfi->hev_thr, 2);
|
||||
vp8_loop_filter_horizontal_edge_c(y_ptr + 8 * y_stride, y_stride, lfi->blim,
|
||||
lfi->lim, lfi->hev_thr, 2);
|
||||
vp8_loop_filter_horizontal_edge_c(y_ptr + 12 * y_stride, y_stride, lfi->blim,
|
||||
lfi->lim, lfi->hev_thr, 2);
|
||||
loop_filter_horizontal_edge_c(y_ptr + 4 * y_stride, y_stride, lfi->blim,
|
||||
lfi->lim, lfi->hev_thr, 2);
|
||||
loop_filter_horizontal_edge_c(y_ptr + 8 * y_stride, y_stride, lfi->blim,
|
||||
lfi->lim, lfi->hev_thr, 2);
|
||||
loop_filter_horizontal_edge_c(y_ptr + 12 * y_stride, y_stride, lfi->blim,
|
||||
lfi->lim, lfi->hev_thr, 2);
|
||||
|
||||
if (u_ptr) {
|
||||
vp8_loop_filter_horizontal_edge_c(u_ptr + 4 * uv_stride, uv_stride,
|
||||
lfi->blim, lfi->lim, lfi->hev_thr, 1);
|
||||
loop_filter_horizontal_edge_c(u_ptr + 4 * uv_stride, uv_stride, lfi->blim,
|
||||
lfi->lim, lfi->hev_thr, 1);
|
||||
}
|
||||
|
||||
if (v_ptr) {
|
||||
vp8_loop_filter_horizontal_edge_c(v_ptr + 4 * uv_stride, uv_stride,
|
||||
lfi->blim, lfi->lim, lfi->hev_thr, 1);
|
||||
loop_filter_horizontal_edge_c(v_ptr + 4 * uv_stride, uv_stride, lfi->blim,
|
||||
lfi->lim, lfi->hev_thr, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -363,21 +367,21 @@ void vp8_loop_filter_bhs_c(unsigned char *y_ptr, int y_stride,
|
||||
void vp8_loop_filter_bv_c(unsigned char *y_ptr, unsigned char *u_ptr,
|
||||
unsigned char *v_ptr, int y_stride, int uv_stride,
|
||||
loop_filter_info *lfi) {
|
||||
vp8_loop_filter_vertical_edge_c(y_ptr + 4, y_stride, lfi->blim, lfi->lim,
|
||||
lfi->hev_thr, 2);
|
||||
vp8_loop_filter_vertical_edge_c(y_ptr + 8, y_stride, lfi->blim, lfi->lim,
|
||||
lfi->hev_thr, 2);
|
||||
vp8_loop_filter_vertical_edge_c(y_ptr + 12, y_stride, lfi->blim, lfi->lim,
|
||||
lfi->hev_thr, 2);
|
||||
loop_filter_vertical_edge_c(y_ptr + 4, y_stride, lfi->blim, lfi->lim,
|
||||
lfi->hev_thr, 2);
|
||||
loop_filter_vertical_edge_c(y_ptr + 8, y_stride, lfi->blim, lfi->lim,
|
||||
lfi->hev_thr, 2);
|
||||
loop_filter_vertical_edge_c(y_ptr + 12, y_stride, lfi->blim, lfi->lim,
|
||||
lfi->hev_thr, 2);
|
||||
|
||||
if (u_ptr) {
|
||||
vp8_loop_filter_vertical_edge_c(u_ptr + 4, uv_stride, lfi->blim, lfi->lim,
|
||||
lfi->hev_thr, 1);
|
||||
loop_filter_vertical_edge_c(u_ptr + 4, uv_stride, lfi->blim, lfi->lim,
|
||||
lfi->hev_thr, 1);
|
||||
}
|
||||
|
||||
if (v_ptr) {
|
||||
vp8_loop_filter_vertical_edge_c(v_ptr + 4, uv_stride, lfi->blim, lfi->lim,
|
||||
lfi->hev_thr, 1);
|
||||
loop_filter_vertical_edge_c(v_ptr + 4, uv_stride, lfi->blim, lfi->lim,
|
||||
lfi->hev_thr, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -22,6 +22,7 @@ extern "C" {
|
||||
#include "vpx/vp8.h"
|
||||
|
||||
struct VP8D_COMP;
|
||||
struct VP8Common;
|
||||
|
||||
typedef struct {
|
||||
int Width;
|
||||
@ -45,6 +46,7 @@ int vp8dx_receive_compressed_data(struct VP8D_COMP *comp, size_t size,
|
||||
int vp8dx_get_raw_frame(struct VP8D_COMP *comp, YV12_BUFFER_CONFIG *sd,
|
||||
int64_t *time_stamp, int64_t *time_end_stamp,
|
||||
vp8_ppflags_t *flags);
|
||||
int vp8dx_references_buffer(struct VP8Common *oci, int ref_frame);
|
||||
|
||||
vpx_codec_err_t vp8dx_get_reference(struct VP8D_COMP *comp,
|
||||
enum vpx_ref_frame_type ref_frame_flag,
|
||||
|
@ -8,6 +8,7 @@
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "decodemv.h"
|
||||
#include "treereader.h"
|
||||
#include "vp8/common/entropymv.h"
|
||||
#include "vp8/common/entropymode.h"
|
||||
|
@ -41,7 +41,6 @@
|
||||
#endif
|
||||
|
||||
extern void vp8_init_loop_filter(VP8_COMMON *cm);
|
||||
extern void vp8cx_init_de_quantizer(VP8D_COMP *pbi);
|
||||
static int get_free_fb(VP8_COMMON *cm);
|
||||
static void ref_cnt_fb(int *buf, int *idx, int new_idx);
|
||||
|
||||
|
@ -119,6 +119,8 @@ typedef struct VP8D_COMP {
|
||||
void *decrypt_state;
|
||||
} VP8D_COMP;
|
||||
|
||||
void vp8cx_init_de_quantizer(VP8D_COMP *pbi);
|
||||
void vp8_mb_init_dequantizer(VP8D_COMP *pbi, MACROBLOCKD *xd);
|
||||
int vp8_decode_frame(VP8D_COMP *cpi);
|
||||
|
||||
int vp8_create_decoder_instances(struct frame_buffers *fb, VP8D_CONFIG *oxcf);
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "vp8/common/loopfilter.h"
|
||||
#include "vp8/common/extend.h"
|
||||
#include "vpx_ports/vpx_timer.h"
|
||||
#include "decoderthreading.h"
|
||||
#include "detokenize.h"
|
||||
#include "vp8/common/reconintra4x4.h"
|
||||
#include "vp8/common/reconinter.h"
|
||||
@ -36,8 +37,6 @@
|
||||
memset((p), 0, (n) * sizeof(*(p))); \
|
||||
} while (0)
|
||||
|
||||
void vp8_mb_init_dequantizer(VP8D_COMP *pbi, MACROBLOCKD *xd);
|
||||
|
||||
static void setup_decoding_thread_data(VP8D_COMP *pbi, MACROBLOCKD *xd,
|
||||
MB_ROW_DEC *mbrd, int count) {
|
||||
VP8_COMMON *const pc = &pbi->common;
|
||||
|
@ -15,7 +15,15 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "vp8/encoder/treewriter.h"
|
||||
#include "vp8/encoder/tokenize.h"
|
||||
|
||||
void vp8_pack_tokens(vp8_writer *w, const TOKENEXTRA *p, int xcount);
|
||||
void vp8_convert_rfct_to_prob(struct VP8_COMP *const cpi);
|
||||
void vp8_calc_ref_frame_costs(int *ref_frame_cost, int prob_intra,
|
||||
int prob_last, int prob_garf);
|
||||
int vp8_estimate_entropy_savings(struct VP8_COMP *cpi);
|
||||
void vp8_update_coef_probs(struct VP8_COMP *cpi);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
|
@ -11,8 +11,12 @@
|
||||
#include "vpx_config.h"
|
||||
#include "vp8_rtcd.h"
|
||||
#include "./vpx_dsp_rtcd.h"
|
||||
#include "bitstream.h"
|
||||
#include "encodemb.h"
|
||||
#include "encodemv.h"
|
||||
#if CONFIG_MULTITHREAD
|
||||
#include "ethreading.h"
|
||||
#endif
|
||||
#include "vp8/common/common.h"
|
||||
#include "onyx_int.h"
|
||||
#include "vp8/common/extend.h"
|
||||
@ -35,13 +39,6 @@
|
||||
#include "encodeframe.h"
|
||||
|
||||
extern void vp8_stuff_mb(VP8_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t);
|
||||
extern void vp8_calc_ref_frame_costs(int *ref_frame_cost, int prob_intra,
|
||||
int prob_last, int prob_garf);
|
||||
extern void vp8_convert_rfct_to_prob(VP8_COMP *const cpi);
|
||||
extern void vp8cx_initialize_me_consts(VP8_COMP *cpi, int QIndex);
|
||||
extern void vp8_auto_select_speed(VP8_COMP *cpi);
|
||||
extern void vp8cx_init_mbrthread_data(VP8_COMP *cpi, MACROBLOCK *x,
|
||||
MB_ROW_COMP *mbr_ei, int count);
|
||||
static void adjust_act_zbin(VP8_COMP *cpi, MACROBLOCK *x);
|
||||
|
||||
#ifdef MODE_STATS
|
||||
|
@ -10,24 +10,29 @@
|
||||
#ifndef VP8_ENCODER_ENCODEFRAME_H_
|
||||
#define VP8_ENCODER_ENCODEFRAME_H_
|
||||
|
||||
#include "vp8/encoder/tokenize.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
extern void vp8_activity_masking(VP8_COMP *cpi, MACROBLOCK *x);
|
||||
|
||||
extern void vp8_build_block_offsets(MACROBLOCK *x);
|
||||
struct VP8_COMP;
|
||||
struct macroblock;
|
||||
|
||||
extern void vp8_setup_block_ptrs(MACROBLOCK *x);
|
||||
void vp8_activity_masking(struct VP8_COMP *cpi, MACROBLOCK *x);
|
||||
|
||||
extern void vp8_encode_frame(VP8_COMP *cpi);
|
||||
void vp8_build_block_offsets(struct macroblock *x);
|
||||
|
||||
extern int vp8cx_encode_inter_macroblock(VP8_COMP *cpi, MACROBLOCK *x,
|
||||
TOKENEXTRA **t, int recon_yoffset,
|
||||
int recon_uvoffset, int mb_row,
|
||||
int mb_col);
|
||||
void vp8_setup_block_ptrs(struct macroblock *x);
|
||||
|
||||
extern int vp8cx_encode_intra_macroblock(VP8_COMP *cpi, MACROBLOCK *x,
|
||||
TOKENEXTRA **t);
|
||||
void vp8_encode_frame(struct VP8_COMP *cpi);
|
||||
|
||||
int vp8cx_encode_inter_macroblock(struct VP8_COMP *cpi, struct macroblock *x,
|
||||
TOKENEXTRA **t, int recon_yoffset,
|
||||
int recon_uvoffset, int mb_row, int mb_col);
|
||||
|
||||
int vp8cx_encode_intra_macroblock(struct VP8_COMP *cpi, struct macroblock *x,
|
||||
TOKENEXTRA **t);
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "vp8/common/extend.h"
|
||||
#include "bitstream.h"
|
||||
#include "encodeframe.h"
|
||||
#include "ethreading.h"
|
||||
|
||||
#if CONFIG_MULTITHREAD
|
||||
|
||||
|
32
vp8/encoder/ethreading.h
Normal file
32
vp8/encoder/ethreading.h
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright (c) 2017 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 VP8_ENCODER_ETHREADING_H_
|
||||
#define VP8_ENCODER_ETHREADING_H_
|
||||
|
||||
#include "vp8/encoder/onyx_int.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct VP8_COMP;
|
||||
struct macroblock;
|
||||
|
||||
void vp8cx_init_mbrthread_data(struct VP8_COMP *cpi, struct macroblock *x,
|
||||
MB_ROW_COMP *mbr_ei, int count);
|
||||
int vp8cx_create_encoder_threads(struct VP8_COMP *cpi);
|
||||
void vp8cx_remove_encoder_threads(struct VP8_COMP *cpi);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // VP8_ENCODER_ETHREADING_H_
|
@ -12,6 +12,7 @@
|
||||
#include "./vpx_scale_rtcd.h"
|
||||
#include "./vpx_dsp_rtcd.h"
|
||||
#include "./vp8_rtcd.h"
|
||||
#include "bitstream.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
#include "vp8/common/blockd.h"
|
||||
#include "onyx_int.h"
|
||||
@ -43,6 +44,13 @@
|
||||
#include "mr_dissim.h"
|
||||
#endif
|
||||
#include "encodeframe.h"
|
||||
#if CONFIG_MULTITHREAD
|
||||
#include "ethreading.h"
|
||||
#endif
|
||||
#include "picklpf.h"
|
||||
#if !CONFIG_REALTIME_ONLY
|
||||
#include "temporal_filter.h"
|
||||
#endif
|
||||
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
@ -51,28 +59,17 @@
|
||||
|
||||
#if CONFIG_REALTIME_ONLY & CONFIG_ONTHEFLY_BITPACKING
|
||||
extern int vp8_update_coef_context(VP8_COMP *cpi);
|
||||
extern void vp8_update_coef_probs(VP8_COMP *cpi);
|
||||
#endif
|
||||
|
||||
extern void vp8cx_pick_filter_level_fast(YV12_BUFFER_CONFIG *sd, VP8_COMP *cpi);
|
||||
extern void vp8cx_set_alt_lf_level(VP8_COMP *cpi, int filt_val);
|
||||
extern void vp8cx_pick_filter_level(YV12_BUFFER_CONFIG *sd, VP8_COMP *cpi);
|
||||
|
||||
extern void vp8_deblock_frame(YV12_BUFFER_CONFIG *source,
|
||||
YV12_BUFFER_CONFIG *post, int filt_lvl,
|
||||
int low_var_thresh, int flag);
|
||||
extern void print_parms(VP8_CONFIG *ocf, char *filenam);
|
||||
extern unsigned int vp8_get_processor_freq();
|
||||
extern void print_tree_update_probs();
|
||||
extern int vp8cx_create_encoder_threads(VP8_COMP *cpi);
|
||||
extern void vp8cx_remove_encoder_threads(VP8_COMP *cpi);
|
||||
|
||||
int vp8_estimate_entropy_savings(VP8_COMP *cpi);
|
||||
|
||||
int vp8_calc_ss_err(YV12_BUFFER_CONFIG *source, YV12_BUFFER_CONFIG *dest);
|
||||
|
||||
extern void vp8_temporal_filter_prepare_c(VP8_COMP *cpi, int distance);
|
||||
|
||||
static void set_default_lf_deltas(VP8_COMP *cpi);
|
||||
|
||||
extern const int vp8_gf_interval_table[101];
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "./vpx_scale_rtcd.h"
|
||||
#include "vp8/common/onyxc_int.h"
|
||||
#include "onyx_int.h"
|
||||
#include "vp8/encoder/picklpf.h"
|
||||
#include "vp8/encoder/quantize.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "vpx_scale/vpx_scale.h"
|
||||
|
30
vp8/encoder/picklpf.h
Normal file
30
vp8/encoder/picklpf.h
Normal file
@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright (c) 2017 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 VP8_ENCODER_PICKLPF_H_
|
||||
#define VP8_ENCODER_PICKLPF_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct VP8_COMP;
|
||||
struct yv12_buffer_config;
|
||||
|
||||
void vp8cx_pick_filter_level_fast(struct yv12_buffer_config *sd,
|
||||
struct VP8_COMP *cpi);
|
||||
void vp8cx_set_alt_lf_level(struct VP8_COMP *cpi, int filt_val);
|
||||
void vp8cx_pick_filter_level(struct yv12_buffer_config *sd, VP8_COMP *cpi);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // VP8_ENCODER_PICKLPF_H_
|
@ -16,6 +16,7 @@
|
||||
#include "vpx_config.h"
|
||||
#include "vp8_rtcd.h"
|
||||
#include "./vpx_dsp_rtcd.h"
|
||||
#include "encodeframe.h"
|
||||
#include "tokenize.h"
|
||||
#include "treewriter.h"
|
||||
#include "onyx_int.h"
|
||||
|
@ -19,6 +19,9 @@ extern "C" {
|
||||
|
||||
#define RDCOST(RM, DM, R, D) (((128 + (R) * (RM)) >> 8) + (DM) * (D))
|
||||
|
||||
void vp8cx_initialize_me_consts(VP8_COMP *cpi, int QIndex);
|
||||
void vp8_auto_select_speed(VP8_COMP *cpi);
|
||||
|
||||
static INLINE void insertsortmv(int arr[], int len) {
|
||||
int i, j, k;
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "ratectrl.h"
|
||||
#include "vp8/common/quant_common.h"
|
||||
#include "segmentation.h"
|
||||
#include "temporal_filter.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "vp8/common/swapyv12buffer.h"
|
||||
#include "vp8/common/threading.h"
|
||||
|
26
vp8/encoder/temporal_filter.h
Normal file
26
vp8/encoder/temporal_filter.h
Normal file
@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright (c) 2017 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 VP8_ENCODER_TEMPORAL_FILTER_H_
|
||||
#define VP8_ENCODER_TEMPORAL_FILTER_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct VP8_COMP;
|
||||
|
||||
void vp8_temporal_filter_prepare_c(struct VP8_COMP *cpi, int distance);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // VP8_ENCODER_TEMPORAL_FILTER_H_
|
@ -1,286 +0,0 @@
|
||||
;
|
||||
; 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.
|
||||
;
|
||||
|
||||
|
||||
%include "vpx_ports/x86_abi_support.asm"
|
||||
|
||||
;int vp8_fast_quantize_b_impl_mmx(short *coeff_ptr, short *zbin_ptr,
|
||||
; short *qcoeff_ptr,short *dequant_ptr,
|
||||
; short *scan_mask, short *round_ptr,
|
||||
; short *quant_ptr, short *dqcoeff_ptr);
|
||||
global sym(vp8_fast_quantize_b_impl_mmx) PRIVATE
|
||||
sym(vp8_fast_quantize_b_impl_mmx):
|
||||
push rbp
|
||||
mov rbp, rsp
|
||||
SHADOW_ARGS_TO_STACK 8
|
||||
push rsi
|
||||
push rdi
|
||||
; end prolog
|
||||
|
||||
|
||||
mov rsi, arg(0) ;coeff_ptr
|
||||
movq mm0, [rsi]
|
||||
|
||||
mov rax, arg(1) ;zbin_ptr
|
||||
movq mm1, [rax]
|
||||
|
||||
movq mm3, mm0
|
||||
psraw mm0, 15
|
||||
|
||||
pxor mm3, mm0
|
||||
psubw mm3, mm0 ; abs
|
||||
|
||||
movq mm2, mm3
|
||||
pcmpgtw mm1, mm2
|
||||
|
||||
pandn mm1, mm2
|
||||
movq mm3, mm1
|
||||
|
||||
mov rdx, arg(6) ;quant_ptr
|
||||
movq mm1, [rdx]
|
||||
|
||||
mov rcx, arg(5) ;round_ptr
|
||||
movq mm2, [rcx]
|
||||
|
||||
paddw mm3, mm2
|
||||
pmulhuw mm3, mm1
|
||||
|
||||
pxor mm3, mm0
|
||||
psubw mm3, mm0 ;gain the sign back
|
||||
|
||||
mov rdi, arg(2) ;qcoeff_ptr
|
||||
movq mm0, mm3
|
||||
|
||||
movq [rdi], mm3
|
||||
|
||||
mov rax, arg(3) ;dequant_ptr
|
||||
movq mm2, [rax]
|
||||
|
||||
pmullw mm3, mm2
|
||||
mov rax, arg(7) ;dqcoeff_ptr
|
||||
|
||||
movq [rax], mm3
|
||||
|
||||
; next 8
|
||||
movq mm4, [rsi+8]
|
||||
|
||||
mov rax, arg(1) ;zbin_ptr
|
||||
movq mm5, [rax+8]
|
||||
|
||||
movq mm7, mm4
|
||||
psraw mm4, 15
|
||||
|
||||
pxor mm7, mm4
|
||||
psubw mm7, mm4 ; abs
|
||||
|
||||
movq mm6, mm7
|
||||
pcmpgtw mm5, mm6
|
||||
|
||||
pandn mm5, mm6
|
||||
movq mm7, mm5
|
||||
|
||||
movq mm5, [rdx+8]
|
||||
movq mm6, [rcx+8]
|
||||
|
||||
paddw mm7, mm6
|
||||
pmulhuw mm7, mm5
|
||||
|
||||
pxor mm7, mm4
|
||||
psubw mm7, mm4;gain the sign back
|
||||
|
||||
mov rdi, arg(2) ;qcoeff_ptr
|
||||
|
||||
movq mm1, mm7
|
||||
movq [rdi+8], mm7
|
||||
|
||||
mov rax, arg(3) ;dequant_ptr
|
||||
movq mm6, [rax+8]
|
||||
|
||||
pmullw mm7, mm6
|
||||
mov rax, arg(7) ;dqcoeff_ptr
|
||||
|
||||
movq [rax+8], mm7
|
||||
|
||||
|
||||
; next 8
|
||||
movq mm4, [rsi+16]
|
||||
|
||||
mov rax, arg(1) ;zbin_ptr
|
||||
movq mm5, [rax+16]
|
||||
|
||||
movq mm7, mm4
|
||||
psraw mm4, 15
|
||||
|
||||
pxor mm7, mm4
|
||||
psubw mm7, mm4 ; abs
|
||||
|
||||
movq mm6, mm7
|
||||
pcmpgtw mm5, mm6
|
||||
|
||||
pandn mm5, mm6
|
||||
movq mm7, mm5
|
||||
|
||||
movq mm5, [rdx+16]
|
||||
movq mm6, [rcx+16]
|
||||
|
||||
paddw mm7, mm6
|
||||
pmulhuw mm7, mm5
|
||||
|
||||
pxor mm7, mm4
|
||||
psubw mm7, mm4;gain the sign back
|
||||
|
||||
mov rdi, arg(2) ;qcoeff_ptr
|
||||
|
||||
movq mm1, mm7
|
||||
movq [rdi+16], mm7
|
||||
|
||||
mov rax, arg(3) ;dequant_ptr
|
||||
movq mm6, [rax+16]
|
||||
|
||||
pmullw mm7, mm6
|
||||
mov rax, arg(7) ;dqcoeff_ptr
|
||||
|
||||
movq [rax+16], mm7
|
||||
|
||||
|
||||
; next 8
|
||||
movq mm4, [rsi+24]
|
||||
|
||||
mov rax, arg(1) ;zbin_ptr
|
||||
movq mm5, [rax+24]
|
||||
|
||||
movq mm7, mm4
|
||||
psraw mm4, 15
|
||||
|
||||
pxor mm7, mm4
|
||||
psubw mm7, mm4 ; abs
|
||||
|
||||
movq mm6, mm7
|
||||
pcmpgtw mm5, mm6
|
||||
|
||||
pandn mm5, mm6
|
||||
movq mm7, mm5
|
||||
|
||||
movq mm5, [rdx+24]
|
||||
movq mm6, [rcx+24]
|
||||
|
||||
paddw mm7, mm6
|
||||
pmulhuw mm7, mm5
|
||||
|
||||
pxor mm7, mm4
|
||||
psubw mm7, mm4;gain the sign back
|
||||
|
||||
mov rdi, arg(2) ;qcoeff_ptr
|
||||
|
||||
movq mm1, mm7
|
||||
movq [rdi+24], mm7
|
||||
|
||||
mov rax, arg(3) ;dequant_ptr
|
||||
movq mm6, [rax+24]
|
||||
|
||||
pmullw mm7, mm6
|
||||
mov rax, arg(7) ;dqcoeff_ptr
|
||||
|
||||
movq [rax+24], mm7
|
||||
|
||||
|
||||
|
||||
mov rdi, arg(4) ;scan_mask
|
||||
mov rsi, arg(2) ;qcoeff_ptr
|
||||
|
||||
pxor mm5, mm5
|
||||
pxor mm7, mm7
|
||||
|
||||
movq mm0, [rsi]
|
||||
movq mm1, [rsi+8]
|
||||
|
||||
movq mm2, [rdi]
|
||||
movq mm3, [rdi+8];
|
||||
|
||||
pcmpeqw mm0, mm7
|
||||
pcmpeqw mm1, mm7
|
||||
|
||||
pcmpeqw mm6, mm6
|
||||
pxor mm0, mm6
|
||||
|
||||
pxor mm1, mm6
|
||||
psrlw mm0, 15
|
||||
|
||||
psrlw mm1, 15
|
||||
pmaddwd mm0, mm2
|
||||
|
||||
pmaddwd mm1, mm3
|
||||
movq mm5, mm0
|
||||
|
||||
paddd mm5, mm1
|
||||
|
||||
movq mm0, [rsi+16]
|
||||
movq mm1, [rsi+24]
|
||||
|
||||
movq mm2, [rdi+16]
|
||||
movq mm3, [rdi+24];
|
||||
|
||||
pcmpeqw mm0, mm7
|
||||
pcmpeqw mm1, mm7
|
||||
|
||||
pcmpeqw mm6, mm6
|
||||
pxor mm0, mm6
|
||||
|
||||
pxor mm1, mm6
|
||||
psrlw mm0, 15
|
||||
|
||||
psrlw mm1, 15
|
||||
pmaddwd mm0, mm2
|
||||
|
||||
pmaddwd mm1, mm3
|
||||
paddd mm5, mm0
|
||||
|
||||
paddd mm5, mm1
|
||||
movq mm0, mm5
|
||||
|
||||
psrlq mm5, 32
|
||||
paddd mm0, mm5
|
||||
|
||||
; eob adjustment begins here
|
||||
movq rcx, mm0
|
||||
and rcx, 0xffff
|
||||
|
||||
xor rdx, rdx
|
||||
sub rdx, rcx ; rdx=-rcx
|
||||
|
||||
bsr rax, rcx
|
||||
inc rax
|
||||
|
||||
sar rdx, 31
|
||||
and rax, rdx
|
||||
; Substitute the sse assembly for the old mmx mixed assembly/C. The
|
||||
; following is kept as reference
|
||||
; movq rcx, mm0
|
||||
; bsr rax, rcx
|
||||
;
|
||||
; mov eob, rax
|
||||
; mov eee, rcx
|
||||
;
|
||||
;if(eee==0)
|
||||
;{
|
||||
; eob=-1;
|
||||
;}
|
||||
;else if(eee<0)
|
||||
;{
|
||||
; eob=15;
|
||||
;}
|
||||
;d->eob = eob+1;
|
||||
|
||||
; begin epilog
|
||||
pop rdi
|
||||
pop rsi
|
||||
UNSHADOW_ARGS
|
||||
pop rbp
|
||||
ret
|
@ -10,6 +10,7 @@
|
||||
|
||||
#include <tmmintrin.h> /* SSSE3 */
|
||||
|
||||
#include "./vp8_rtcd.h"
|
||||
#include "vp8/encoder/block.h"
|
||||
|
||||
/* bitscan reverse (bsr) */
|
||||
|
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include "vpx_config.h"
|
||||
#include "vp8_rtcd.h"
|
||||
#include "vpx_ports/x86.h"
|
||||
#include "vp8/encoder/block.h"
|
||||
|
||||
int vp8_fast_quantize_b_impl_mmx(short *coeff_ptr, short *zbin_ptr,
|
||||
short *qcoeff_ptr, short *dequant_ptr,
|
||||
const short *scan_mask, short *round_ptr,
|
||||
short *quant_ptr, short *dqcoeff_ptr);
|
||||
void vp8_fast_quantize_b_mmx(BLOCK *b, BLOCKD *d) {
|
||||
const short *scan_mask = vp8_default_zig_zag_mask;
|
||||
short *coeff_ptr = b->coeff;
|
||||
short *zbin_ptr = b->zbin;
|
||||
short *round_ptr = b->round;
|
||||
short *quant_ptr = b->quant_fast;
|
||||
short *qcoeff_ptr = d->qcoeff;
|
||||
short *dqcoeff_ptr = d->dqcoeff;
|
||||
short *dequant_ptr = d->dequant;
|
||||
|
||||
*d->eob = (char)vp8_fast_quantize_b_impl_mmx(
|
||||
coeff_ptr, zbin_ptr, qcoeff_ptr, dequant_ptr, scan_mask,
|
||||
|
||||
round_ptr, quant_ptr, dqcoeff_ptr);
|
||||
}
|
@ -581,7 +581,6 @@ static vpx_codec_err_t vp8_get_last_ref_updates(vpx_codec_alg_priv_t *ctx,
|
||||
}
|
||||
}
|
||||
|
||||
extern int vp8dx_references_buffer(VP8_COMMON *oci, int ref_frame);
|
||||
static vpx_codec_err_t vp8_get_last_ref_frame(vpx_codec_alg_priv_t *ctx,
|
||||
va_list args) {
|
||||
int *ref_info = va_arg(args, int *);
|
||||
|
@ -30,6 +30,7 @@ VP8_CX_SRCS-yes += encoder/encodeintra.c
|
||||
VP8_CX_SRCS-yes += encoder/encodemb.c
|
||||
VP8_CX_SRCS-yes += encoder/encodemv.c
|
||||
VP8_CX_SRCS-$(CONFIG_MULTITHREAD) += encoder/ethreading.c
|
||||
VP8_CX_SRCS-$(CONFIG_MULTITHREAD) += encoder/ethreading.h
|
||||
VP8_CX_SRCS-yes += encoder/firstpass.c
|
||||
VP8_CX_SRCS-yes += encoder/block.h
|
||||
VP8_CX_SRCS-yes += encoder/boolhuff.h
|
||||
@ -56,6 +57,7 @@ VP8_CX_SRCS-yes += encoder/modecosts.c
|
||||
VP8_CX_SRCS-yes += encoder/onyx_if.c
|
||||
VP8_CX_SRCS-yes += encoder/pickinter.c
|
||||
VP8_CX_SRCS-yes += encoder/picklpf.c
|
||||
VP8_CX_SRCS-yes += encoder/picklpf.h
|
||||
VP8_CX_SRCS-yes += encoder/vp8_quantize.c
|
||||
VP8_CX_SRCS-yes += encoder/ratectrl.c
|
||||
VP8_CX_SRCS-yes += encoder/rdopt.c
|
||||
@ -70,15 +72,16 @@ VP8_CX_SRCS-yes += encoder/treewriter.c
|
||||
VP8_CX_SRCS-$(CONFIG_INTERNAL_STATS) += common/postproc.h
|
||||
VP8_CX_SRCS-$(CONFIG_INTERNAL_STATS) += common/postproc.c
|
||||
VP8_CX_SRCS-yes += encoder/temporal_filter.c
|
||||
VP8_CX_SRCS-yes += encoder/temporal_filter.h
|
||||
VP8_CX_SRCS-$(CONFIG_MULTI_RES_ENCODING) += encoder/mr_dissim.c
|
||||
VP8_CX_SRCS-$(CONFIG_MULTI_RES_ENCODING) += encoder/mr_dissim.h
|
||||
|
||||
ifeq ($(CONFIG_REALTIME_ONLY),yes)
|
||||
VP8_CX_SRCS_REMOVE-yes += encoder/firstpass.c
|
||||
VP8_CX_SRCS_REMOVE-yes += encoder/temporal_filter.c
|
||||
VP8_CX_SRCS_REMOVE-yes += encoder/temporal_filter.h
|
||||
endif
|
||||
|
||||
VP8_CX_SRCS-$(HAVE_MMX) += encoder/x86/vp8_enc_stubs_mmx.c
|
||||
VP8_CX_SRCS-$(HAVE_SSE2) += encoder/x86/dct_sse2.asm
|
||||
VP8_CX_SRCS-$(HAVE_SSE2) += encoder/x86/fwalsh_sse2.asm
|
||||
VP8_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp8_quantize_sse2.c
|
||||
@ -91,7 +94,6 @@ endif
|
||||
|
||||
VP8_CX_SRCS-$(HAVE_SSE2) += encoder/x86/temporal_filter_apply_sse2.asm
|
||||
VP8_CX_SRCS-$(HAVE_SSE2) += encoder/x86/vp8_enc_stubs_sse2.c
|
||||
VP8_CX_SRCS-$(ARCH_X86)$(ARCH_X86_64) += encoder/x86/quantize_mmx.asm
|
||||
VP8_CX_SRCS-$(ARCH_X86)$(ARCH_X86_64) += encoder/x86/encodeopt.asm
|
||||
|
||||
ifeq ($(CONFIG_REALTIME_ONLY),yes)
|
||||
|
@ -15,7 +15,7 @@ struct ALT_REF_AQ {
|
||||
int dummy;
|
||||
};
|
||||
|
||||
struct ALT_REF_AQ *vp9_alt_ref_aq_create() {
|
||||
struct ALT_REF_AQ *vp9_alt_ref_aq_create(void) {
|
||||
return (struct ALT_REF_AQ *)vpx_malloc(sizeof(struct ALT_REF_AQ));
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ struct ALT_REF_AQ;
|
||||
*
|
||||
* \return Instance of the class
|
||||
*/
|
||||
struct ALT_REF_AQ *vp9_alt_ref_aq_create();
|
||||
struct ALT_REF_AQ *vp9_alt_ref_aq_create(void);
|
||||
|
||||
/*!\brief Upload segmentation_map to self object
|
||||
*
|
||||
|
@ -489,8 +489,9 @@ static int set_vt_partitioning(VP9_COMP *cpi, MACROBLOCK *const x,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int64_t scale_part_thresh_sumdiff(int64_t threshold_base, int speed, int width,
|
||||
int height, int content_state) {
|
||||
static int64_t scale_part_thresh_sumdiff(int64_t threshold_base, int speed,
|
||||
int width, int height,
|
||||
int content_state) {
|
||||
if (speed >= 8) {
|
||||
if (width <= 640 && height <= 480)
|
||||
return (5 * threshold_base) >> 2;
|
||||
|
@ -2070,7 +2070,8 @@ int vp9_resize_one_pass_cbr(VP9_COMP *cpi) {
|
||||
return resize_action;
|
||||
}
|
||||
|
||||
void adjust_gf_boost_lag_one_pass_vbr(VP9_COMP *cpi, uint64_t avg_sad_current) {
|
||||
static void adjust_gf_boost_lag_one_pass_vbr(VP9_COMP *cpi,
|
||||
uint64_t avg_sad_current) {
|
||||
VP9_COMMON *const cm = &cpi->common;
|
||||
RATE_CONTROL *const rc = &cpi->rc;
|
||||
int target;
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <assert.h>
|
||||
#include <smmintrin.h>
|
||||
|
||||
#include "./vp9_rtcd.h"
|
||||
#include "./vpx_config.h"
|
||||
#include "vpx/vpx_integer.h"
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "./vpx_dsp_rtcd.h"
|
||||
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "vpx_dsp/postproc.h"
|
||||
#include "vpx_ports/mem.h"
|
||||
|
||||
void vpx_plane_add_noise_c(uint8_t *start, const int8_t *noise, int blackclamp,
|
||||
|
@ -9,6 +9,7 @@
|
||||
*/
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include "./vpx_dsp_rtcd.h"
|
||||
#include "vpx/vpx_integer.h"
|
||||
|
||||
const int16_t vpx_rv[] = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user