prototype void vp9_temporal_filter_apply "uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count"
specialize vp9_temporal_filter_apply sse2
-prototype void vp9_yv12_copy_partial_frame "struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc, int fraction"
-specialize vp9_yv12_copy_partial_frame
-
-
fi
# end encoder functions
#include "vp9/common/vp9_loopfilter.h"
#include "./vpx_scale_rtcd.h"
-void vp9_yv12_copy_partial_frame_c(YV12_BUFFER_CONFIG *src_ybc,
- YV12_BUFFER_CONFIG *dst_ybc, int fraction) {
- const int height = src_ybc->y_height;
- const int stride = src_ybc->y_stride;
- const int offset = stride * ((height >> 5) * 16 - 8);
- const int lines_to_copy = MAX(height >> (fraction + 4), 1) << 4;
-
- assert(src_ybc->y_stride == dst_ybc->y_stride);
- vpx_memcpy(dst_ybc->y_buffer + offset, src_ybc->y_buffer + offset,
- stride * (lines_to_copy + 16));
-}
-
// Enforce a minimum filter level based upon baseline Q
static int get_min_filter_level(VP9_COMP *cpi, int base_qindex) {
int min_filter_level;