diff options
Diffstat (limited to 'vp10')
-rw-r--r-- | vp10/common/postproc.c | 29 | ||||
-rw-r--r-- | vp10/common/vp10_rtcd_defs.pl | 7 | ||||
-rw-r--r-- | vp10/common/x86/postproc_sse2.asm | 62 | ||||
-rw-r--r-- | vp10/encoder/encodemb.c | 2 | ||||
-rw-r--r-- | vp10/encoder/encoder.h | 2 | ||||
-rw-r--r-- | vp10/encoder/lookahead.c | 10 | ||||
-rw-r--r-- | vp10/encoder/lookahead.h | 8 | ||||
-rw-r--r-- | vp10/encoder/quantize.c | 6 |
8 files changed, 16 insertions, 110 deletions
diff --git a/vp10/common/postproc.c b/vp10/common/postproc.c index a6ea9c0ef..e8a9f8131 100644 --- a/vp10/common/postproc.c +++ b/vp10/common/postproc.c @@ -13,6 +13,7 @@ #include <stdio.h> #include "./vpx_config.h" +#include "./vpx_dsp_rtcd.h" #include "./vpx_scale_rtcd.h" #include "./vp10_rtcd.h" @@ -587,32 +588,6 @@ static void fillrd(struct postproc_state *state, int q, int a) { state->last_noise = a; } -void vp10_plane_add_noise_c(uint8_t *start, char *noise, - char blackclamp[16], - char whiteclamp[16], - char bothclamp[16], - unsigned int width, unsigned int height, int pitch) { - unsigned int i, j; - - // TODO(jbb): why does simd code use both but c doesn't, normalize and - // fix.. - (void) bothclamp; - for (i = 0; i < height; i++) { - uint8_t *pos = start + i * pitch; - char *ref = (char *)(noise + (rand() & 0xff)); // NOLINT - - for (j = 0; j < width; j++) { - if (pos[j] < blackclamp[0]) - pos[j] = blackclamp[0]; - - if (pos[j] > 255 + whiteclamp[0]) - pos[j] = 255 + whiteclamp[0]; - - pos[j] += ref[j]; - } - } -} - static void swap_mi_and_prev_mi(VP10_COMMON *cm) { // Current mip will be the prev_mip for the next frame. MODE_INFO *temp = cm->postproc_state.prev_mip; @@ -727,7 +702,7 @@ int vp10_post_proc_frame(struct VP10Common *cm, fillrd(ppstate, 63 - q, noise_level); } - vp10_plane_add_noise(ppbuf->y_buffer, ppstate->noise, ppstate->blackclamp, + vpx_plane_add_noise(ppbuf->y_buffer, ppstate->noise, ppstate->blackclamp, ppstate->whiteclamp, ppstate->bothclamp, ppbuf->y_width, ppbuf->y_height, ppbuf->y_stride); } diff --git a/vp10/common/vp10_rtcd_defs.pl b/vp10/common/vp10_rtcd_defs.pl index 9860baedf..f2414f811 100644 --- a/vp10/common/vp10_rtcd_defs.pl +++ b/vp10/common/vp10_rtcd_defs.pl @@ -70,10 +70,6 @@ add_proto qw/void vp10_post_proc_down_and_across/, "const uint8_t *src_ptr, uint specialize qw/vp10_post_proc_down_and_across sse2/; $vp10_post_proc_down_and_across_sse2=vp10_post_proc_down_and_across_xmm; -add_proto qw/void vp10_plane_add_noise/, "uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch"; -specialize qw/vp10_plane_add_noise sse2/; -$vp10_plane_add_noise_sse2=vp10_plane_add_noise_wmt; - add_proto qw/void vp10_filter_by_weight16x16/, "const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight"; specialize qw/vp10_filter_by_weight16x16 sse2 msa/; @@ -326,9 +322,6 @@ if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") eq "yes") { add_proto qw/void vp10_highbd_post_proc_down_and_across/, "const uint16_t *src_ptr, uint16_t *dst_ptr, int src_pixels_per_line, int dst_pixels_per_line, int rows, int cols, int flimit"; specialize qw/vp10_highbd_post_proc_down_and_across/; - - add_proto qw/void vp10_highbd_plane_add_noise/, "uint8_t *Start, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int Width, unsigned int Height, int Pitch"; - specialize qw/vp10_highbd_plane_add_noise/; } # diff --git a/vp10/common/x86/postproc_sse2.asm b/vp10/common/x86/postproc_sse2.asm index d5f8e927b..d477a65c2 100644 --- a/vp10/common/x86/postproc_sse2.asm +++ b/vp10/common/x86/postproc_sse2.asm @@ -624,68 +624,6 @@ sym(vp10_mbpost_proc_across_ip_xmm): %undef flimit4 -;void vp10_plane_add_noise_wmt (unsigned char *start, unsigned char *noise, -; unsigned char blackclamp[16], -; unsigned char whiteclamp[16], -; unsigned char bothclamp[16], -; unsigned int width, unsigned int height, int pitch) -global sym(vp10_plane_add_noise_wmt) PRIVATE -sym(vp10_plane_add_noise_wmt): - push rbp - mov rbp, rsp - SHADOW_ARGS_TO_STACK 8 - GET_GOT rbx - push rsi - push rdi - ; end prolog - -.addnoise_loop: - call sym(LIBVPX_RAND) WRT_PLT - mov rcx, arg(1) ;noise - and rax, 0xff - add rcx, rax - - ; we rely on the fact that the clamping vectors are stored contiguously - ; in black/white/both order. Note that we have to reload this here because - ; rdx could be trashed by rand() - mov rdx, arg(2) ; blackclamp - - - mov rdi, rcx - movsxd rcx, dword arg(5) ;[Width] - mov rsi, arg(0) ;Pos - xor rax,rax - -.addnoise_nextset: - movdqu xmm1,[rsi+rax] ; get the source - - psubusb xmm1, [rdx] ;blackclamp ; clamp both sides so we don't outrange adding noise - paddusb xmm1, [rdx+32] ;bothclamp - psubusb xmm1, [rdx+16] ;whiteclamp - - movdqu xmm2,[rdi+rax] ; get the noise for this line - paddb xmm1,xmm2 ; add it in - movdqu [rsi+rax],xmm1 ; store the result - - add rax,16 ; move to the next line - - cmp rax, rcx - jl .addnoise_nextset - - movsxd rax, dword arg(7) ; Pitch - add arg(0), rax ; Start += Pitch - sub dword arg(6), 1 ; Height -= 1 - jg .addnoise_loop - - ; begin epilog - pop rdi - pop rsi - RESTORE_GOT - UNSHADOW_ARGS - pop rbp - ret - - SECTION_RODATA align 16 rd42: diff --git a/vp10/encoder/encodemb.c b/vp10/encoder/encodemb.c index 92ba4ddb4..fb11e466a 100644 --- a/vp10/encoder/encodemb.c +++ b/vp10/encoder/encodemb.c @@ -57,7 +57,7 @@ typedef struct vp10_token_state { int error; int next; int16_t token; - short qc; + tran_low_t qc; } vp10_token_state; // TODO(jimbankoski): experiment to find optimal RD numbers. diff --git a/vp10/encoder/encoder.h b/vp10/encoder/encoder.h index bd6a00932..2cd1d3c4f 100644 --- a/vp10/encoder/encoder.h +++ b/vp10/encoder/encoder.h @@ -129,7 +129,7 @@ typedef struct VP10EncoderConfig { int height; // height of data passed to the compressor unsigned int input_bit_depth; // Input bit depth. double init_framerate; // set to passed in framerate - int64_t target_bandwidth; // bandwidth to be used in kilobits per second + int64_t target_bandwidth; // bandwidth to be used in bits per second int noise_sensitivity; // pre processing blur: recommendation 0 int sharpness; // sharpening output: recommendation 0: diff --git a/vp10/encoder/lookahead.c b/vp10/encoder/lookahead.c index dce013903..3185cb691 100644 --- a/vp10/encoder/lookahead.c +++ b/vp10/encoder/lookahead.c @@ -20,8 +20,8 @@ /* Return the buffer at the given absolute index and increment the index */ static struct lookahead_entry *pop(struct lookahead_ctx *ctx, - unsigned int *idx) { - unsigned int index = *idx; + int *idx) { + int index = *idx; struct lookahead_entry *buf = ctx->buf + index; assert(index < ctx->max_sz); @@ -35,7 +35,7 @@ static struct lookahead_entry *pop(struct lookahead_ctx *ctx, void vp10_lookahead_destroy(struct lookahead_ctx *ctx) { if (ctx) { if (ctx->buf) { - unsigned int i; + int i; for (i = 0; i < ctx->max_sz; i++) vpx_free_frame_buffer(&ctx->buf[i].img); @@ -221,9 +221,9 @@ struct lookahead_entry *vp10_lookahead_peek(struct lookahead_ctx *ctx, if (index >= 0) { // Forward peek - if (index < (int)ctx->sz) { + if (index < ctx->sz) { index += ctx->read_idx; - if (index >= (int)ctx->max_sz) + if (index >= ctx->max_sz) index -= ctx->max_sz; buf = ctx->buf + index; } diff --git a/vp10/encoder/lookahead.h b/vp10/encoder/lookahead.h index 22429aeeb..f650f8028 100644 --- a/vp10/encoder/lookahead.h +++ b/vp10/encoder/lookahead.h @@ -31,10 +31,10 @@ struct lookahead_entry { #define MAX_PRE_FRAMES 1 struct lookahead_ctx { - unsigned int max_sz; /* Absolute size of the queue */ - unsigned int sz; /* Number of buffers currently in the queue */ - unsigned int read_idx; /* Read index */ - unsigned int write_idx; /* Write index */ + int max_sz; /* Absolute size of the queue */ + int sz; /* Number of buffers currently in the queue */ + int read_idx; /* Read index */ + int write_idx; /* Write index */ struct lookahead_entry *buf; /* Buffer list */ }; diff --git a/vp10/encoder/quantize.c b/vp10/encoder/quantize.c index 86b324f1a..136efe34a 100644 --- a/vp10/encoder/quantize.c +++ b/vp10/encoder/quantize.c @@ -219,12 +219,12 @@ void vp10_regular_quantize_b_4x4(MACROBLOCK *x, int plane, int block, static void invert_quant(int16_t *quant, int16_t *shift, int d) { unsigned t; - int l; + int l, m; t = d; for (l = 0; t > 1; l++) t >>= 1; - t = 1 + (1 << (16 + l)) / d; - *quant = (int16_t)(t - (1 << 16)); + m = 1 + (1 << (16 + l)) / d; + *quant = (int16_t)(m - (1 << 16)); *shift = 1 << (16 - l); } |