OLD | NEW |
(Empty) | |
| 1 /* |
| 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
| 3 * |
| 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ |
| 10 |
| 11 #include "vp9/common/vp9_subpixel.h" |
| 12 #include "vp9/common/vp9_loopfilter.h" |
| 13 #include "recon.h" |
| 14 #include "vp9/common/vp9_onyxc_int.h" |
| 15 |
| 16 void (*vp8_short_idct4x4)(short *input, short *output, int pitch); |
| 17 void (*vp8_short_idct4x4_1)(short *input, short *output, int pitch); |
| 18 void (*vp8_dc_only_idct)(short input_dc, short *output, int pitch); |
| 19 |
| 20 extern void (*vp9_post_proc_down_and_across)( |
| 21 unsigned char *src_ptr, |
| 22 unsigned char *dst_ptr, |
| 23 int src_pixels_per_line, |
| 24 int dst_pixels_per_line, |
| 25 int rows, |
| 26 int cols, |
| 27 int flimit |
| 28 ); |
| 29 |
| 30 extern void (*vp9_mbpost_proc_down)(unsigned char *dst, int pitch, int rows, int
cols, int flimit); |
| 31 extern void vp9_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int
cols, int flimit); |
| 32 extern void (*vp9_mbpost_proc_across_ip)(unsigned char *src, int pitch, int rows
, int cols, int flimit); |
| 33 extern void vp9_mbpost_proc_across_ip_c(unsigned char *src, int pitch, int rows,
int cols, int flimit); |
| 34 |
| 35 extern void vp9_post_proc_down_and_across_c |
| 36 ( |
| 37 unsigned char *src_ptr, |
| 38 unsigned char *dst_ptr, |
| 39 int src_pixels_per_line, |
| 40 int dst_pixels_per_line, |
| 41 int rows, |
| 42 int cols, |
| 43 int flimit |
| 44 ); |
| 45 void vp9_plane_add_noise_c(unsigned char *Start, unsigned int Width, unsigned in
t Height, int Pitch, int q, int a); |
| 46 |
| 47 extern copy_mem_block_function *vp9_copy_mem16x16; |
| 48 extern copy_mem_block_function *vp9_copy_mem8x8; |
| 49 extern copy_mem_block_function *vp9_copy_mem8x4; |
| 50 |
| 51 // PPC |
| 52 extern subpixel_predict_function sixtap_predict_ppc; |
| 53 extern subpixel_predict_function sixtap_predict8x4_ppc; |
| 54 extern subpixel_predict_function sixtap_predict8x8_ppc; |
| 55 extern subpixel_predict_function sixtap_predict16x16_ppc; |
| 56 extern subpixel_predict_function bilinear_predict4x4_ppc; |
| 57 extern subpixel_predict_function bilinear_predict8x4_ppc; |
| 58 extern subpixel_predict_function bilinear_predict8x8_ppc; |
| 59 extern subpixel_predict_function bilinear_predict16x16_ppc; |
| 60 |
| 61 extern copy_mem_block_function copy_mem16x16_ppc; |
| 62 |
| 63 void recon_b_ppc(short *diff_ptr, unsigned char *pred_ptr, unsigned char *dst_pt
r, int stride); |
| 64 void recon2b_ppc(short *diff_ptr, unsigned char *pred_ptr, unsigned char *dst_pt
r, int stride); |
| 65 void recon4b_ppc(short *diff_ptr, unsigned char *pred_ptr, unsigned char *dst_pt
r, int stride); |
| 66 |
| 67 extern void short_idct4x4llm_ppc(short *input, short *output, int pitch); |
| 68 |
| 69 // Generic C |
| 70 extern subpixel_predict_function vp9_sixtap_predict_c; |
| 71 extern subpixel_predict_function vp9_sixtap_predict8x4_c; |
| 72 extern subpixel_predict_function vp9_sixtap_predict8x8_c; |
| 73 extern subpixel_predict_function vp9_sixtap_predict16x16_c; |
| 74 extern subpixel_predict_function vp9_bilinear_predict4x4_c; |
| 75 extern subpixel_predict_function vp9_bilinear_predict8x4_c; |
| 76 extern subpixel_predict_function vp9_bilinear_predict8x8_c; |
| 77 extern subpixel_predict_function vp9_bilinear_predict16x16_c; |
| 78 |
| 79 extern copy_mem_block_function vp9_copy_mem16x16_c; |
| 80 extern copy_mem_block_function vp9_copy_mem8x8_c; |
| 81 extern copy_mem_block_function vp9_copy_mem8x4_c; |
| 82 |
| 83 void vp9_recon_b_c(short *diff_ptr, unsigned char *pred_ptr, unsigned char *dst_
ptr, int stride); |
| 84 void vp9_recon2b_c(short *diff_ptr, unsigned char *pred_ptr, unsigned char *dst_
ptr, int stride); |
| 85 void vp9_recon4b_c(short *diff_ptr, unsigned char *pred_ptr, unsigned char *dst_
ptr, int stride); |
| 86 |
| 87 extern void vp9_short_idct4x4llm_1_c(short *input, short *output, int pitch); |
| 88 extern void vp9_short_idct4x4llm_c(short *input, short *output, int pitch); |
| 89 extern void vp8_dc_only_idct_c(short input_dc, short *output, int pitch); |
| 90 |
| 91 // PPC |
| 92 extern loop_filter_block_function loop_filter_mbv_ppc; |
| 93 extern loop_filter_block_function loop_filter_bv_ppc; |
| 94 extern loop_filter_block_function loop_filter_mbh_ppc; |
| 95 extern loop_filter_block_function loop_filter_bh_ppc; |
| 96 |
| 97 extern loop_filter_block_function loop_filter_mbvs_ppc; |
| 98 extern loop_filter_block_function loop_filter_bvs_ppc; |
| 99 extern loop_filter_block_function loop_filter_mbhs_ppc; |
| 100 extern loop_filter_block_function loop_filter_bhs_ppc; |
| 101 |
| 102 // Generic C |
| 103 extern loop_filter_block_function vp9_loop_filter_mbv_c; |
| 104 extern loop_filter_block_function vp9_loop_filter_bv_c; |
| 105 extern loop_filter_block_function vp9_loop_filter_mbh_c; |
| 106 extern loop_filter_block_function vp9_loop_filter_bh_c; |
| 107 |
| 108 extern loop_filter_block_function vp9_loop_filter_mbvs_c; |
| 109 extern loop_filter_block_function vp9_loop_filter_bvs_c; |
| 110 extern loop_filter_block_function vp9_loop_filter_mbhs_c; |
| 111 extern loop_filter_block_function vp9_loop_filter_bhs_c; |
| 112 |
| 113 extern loop_filter_block_function *vp8_lf_mbvfull; |
| 114 extern loop_filter_block_function *vp8_lf_mbhfull; |
| 115 extern loop_filter_block_function *vp8_lf_bvfull; |
| 116 extern loop_filter_block_function *vp8_lf_bhfull; |
| 117 |
| 118 extern loop_filter_block_function *vp8_lf_mbvsimple; |
| 119 extern loop_filter_block_function *vp8_lf_mbhsimple; |
| 120 extern loop_filter_block_function *vp8_lf_bvsimple; |
| 121 extern loop_filter_block_function *vp8_lf_bhsimple; |
| 122 |
| 123 void vp9_clear_c(void) { |
| 124 } |
| 125 |
| 126 void vp9_machine_specific_config(void) { |
| 127 // Pure C: |
| 128 vp9_clear_system_state = vp9_clear_c; |
| 129 vp9_recon_b = vp9_recon_b_c; |
| 130 vp9_recon4b = vp9_recon4b_c; |
| 131 vp9_recon2b = vp9_recon2b_c; |
| 132 |
| 133 vp9_bilinear_predict16x16 = bilinear_predict16x16_ppc; |
| 134 vp9_bilinear_predict8x8 = bilinear_predict8x8_ppc; |
| 135 vp9_bilinear_predict8x4 = bilinear_predict8x4_ppc; |
| 136 vp8_bilinear_predict = bilinear_predict4x4_ppc; |
| 137 |
| 138 vp9_sixtap_predict16x16 = sixtap_predict16x16_ppc; |
| 139 vp9_sixtap_predict8x8 = sixtap_predict8x8_ppc; |
| 140 vp9_sixtap_predict8x4 = sixtap_predict8x4_ppc; |
| 141 vp9_sixtap_predict = sixtap_predict_ppc; |
| 142 |
| 143 vp8_short_idct4x4_1 = vp9_short_idct4x4llm_1_c; |
| 144 vp8_short_idct4x4 = short_idct4x4llm_ppc; |
| 145 vp8_dc_only_idct = vp8_dc_only_idct_c; |
| 146 |
| 147 vp8_lf_mbvfull = loop_filter_mbv_ppc; |
| 148 vp8_lf_bvfull = loop_filter_bv_ppc; |
| 149 vp8_lf_mbhfull = loop_filter_mbh_ppc; |
| 150 vp8_lf_bhfull = loop_filter_bh_ppc; |
| 151 |
| 152 vp8_lf_mbvsimple = loop_filter_mbvs_ppc; |
| 153 vp8_lf_bvsimple = loop_filter_bvs_ppc; |
| 154 vp8_lf_mbhsimple = loop_filter_mbhs_ppc; |
| 155 vp8_lf_bhsimple = loop_filter_bhs_ppc; |
| 156 |
| 157 vp9_post_proc_down_and_across = vp9_post_proc_down_and_across_c; |
| 158 vp9_mbpost_proc_down = vp9_mbpost_proc_down_c; |
| 159 vp9_mbpost_proc_across_ip = vp9_mbpost_proc_across_ip_c; |
| 160 vp9_plane_add_noise = vp9_plane_add_noise_c; |
| 161 |
| 162 vp9_copy_mem16x16 = copy_mem16x16_ppc; |
| 163 vp9_copy_mem8x8 = vp9_copy_mem8x8_c; |
| 164 vp9_copy_mem8x4 = vp9_copy_mem8x4_c; |
| 165 |
| 166 } |
OLD | NEW |