[svn] / trunk / xvidcore / src / image / qpel.c Repository:
ViewVC logotype

Diff of /trunk/xvidcore/src/image/qpel.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1557, Sun Oct 17 10:20:15 2004 UTC revision 1627, Mon Aug 1 10:53:46 2005 UTC
# Line 19  Line 19 
19   *  along with this program ; if not, write to the Free Software   *  along with this program ; if not, write to the Free Software
20   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21   *   *
22   * $Id: qpel.c,v 1.4 2004-10-17 10:20:15 edgomez Exp $   * $Id: qpel.c,v 1.7 2005-08-01 10:53:46 Isibaar Exp $
23   *   *
24   ****************************************************************************/   ****************************************************************************/
25    
# Line 340  Line 340 
340    
341  #endif /* ARCH_IS_PPC */  #endif /* ARCH_IS_PPC */
342    
343    /* mmx impl. (for 64bit bus) declaration (see. qpel_mmx.asm
344     ****************************************************************************/
345    
346    #ifdef ARCH_IS_X86_64
347    extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_16_x86_64);
348    extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_16_x86_64);
349    extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_Up_16_x86_64);
350    extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_16_x86_64);
351    extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_16_x86_64);
352    extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_Up_16_x86_64);
353    
354    extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_8_x86_64);
355    extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_8_x86_64);
356    extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_Up_8_x86_64);
357    extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_8_x86_64);
358    extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_8_x86_64);
359    extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_Up_8_x86_64);
360    
361    extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Add_16_x86_64);
362    extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_Add_16_x86_64);
363    extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_Up_Add_16_x86_64);
364    extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Add_16_x86_64);
365    extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_Add_16_x86_64);
366    extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_Up_Add_16_x86_64);
367    
368    extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_8_Add_x86_64);
369    extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_8_Add_x86_64);
370    extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_Up_8_Add_x86_64);
371    extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_8_Add_x86_64);
372    extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_8_Add_x86_64);
373    extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_Up_8_Add_x86_64);
374    
375    XVID_QP_FUNCS xvid_QP_Funcs_x86_64 = {
376            xvid_H_Pass_16_x86_64, xvid_H_Pass_Avrg_16_x86_64, xvid_H_Pass_Avrg_Up_16_x86_64,
377            xvid_V_Pass_16_x86_64, xvid_V_Pass_Avrg_16_x86_64, xvid_V_Pass_Avrg_Up_16_x86_64,
378    
379            xvid_H_Pass_8_x86_64, xvid_H_Pass_Avrg_8_x86_64, xvid_H_Pass_Avrg_Up_8_x86_64,
380            xvid_V_Pass_8_x86_64, xvid_V_Pass_Avrg_8_x86_64, xvid_V_Pass_Avrg_Up_8_x86_64
381    };
382    
383    XVID_QP_FUNCS xvid_QP_Add_Funcs_x86_64 = {
384            xvid_H_Pass_Add_16_x86_64, xvid_H_Pass_Avrg_Add_16_x86_64, xvid_H_Pass_Avrg_Up_Add_16_x86_64,
385            xvid_V_Pass_Add_16_x86_64, xvid_V_Pass_Avrg_Add_16_x86_64, xvid_V_Pass_Avrg_Up_Add_16_x86_64,
386    
387            xvid_H_Pass_8_Add_x86_64, xvid_H_Pass_Avrg_8_Add_x86_64, xvid_H_Pass_Avrg_Up_8_Add_x86_64,
388            xvid_V_Pass_8_Add_x86_64, xvid_V_Pass_Avrg_8_Add_x86_64, xvid_V_Pass_Avrg_Up_8_Add_x86_64,
389    };
390    #endif /* ARCH_IS_X86_64 */
391    
392  /* tables for ASM  /* tables for ASM
393   ****************************************************************************/   ****************************************************************************/
394    
# Line 347  Line 396 
396  uint16_t xvid_Expand_mmx[256][4]; /* 8b -> 64b expansion table */  uint16_t xvid_Expand_mmx[256][4]; /* 8b -> 64b expansion table */
397  #endif  #endif
398    
399    #ifdef ARCH_IS_X86_64
400    extern uint16_t xvid_Expand_mmx[256][4]; /* 8b -> 64b expansion table */
401    #endif
402    
403  /* Alternate way of filtering (cf. USE_TABLES flag in qpel_mmx.asm)  /* Alternate way of filtering (cf. USE_TABLES flag in qpel_mmx.asm)
404   *   *
405   * 17 tables, 2K each => 34K   * 17 tables, 2K each => 34K
# Line 354  Line 407 
407   * (for instance: (23,19,-6,3)=(20,20,-6,3)+(3,-1,0,0)   * (for instance: (23,19,-6,3)=(20,20,-6,3)+(3,-1,0,0)
408   * Using Symmetries (and bswap) could reduce further   * Using Symmetries (and bswap) could reduce further
409   * the memory to 7 tables (->14K). */   * the memory to 7 tables (->14K). */
410    #ifdef ARCH_IS_X86_64
411    #define __SCOPE extern
412    #else
413    #define __SCOPE
414    #endif
415    
416  int16_t xvid_FIR_1_0_0_0[256][4];  __SCOPE int16_t xvid_FIR_1_0_0_0[256][4];
417  int16_t xvid_FIR_3_1_0_0[256][4];  __SCOPE int16_t xvid_FIR_3_1_0_0[256][4];
418  int16_t xvid_FIR_6_3_1_0[256][4];  __SCOPE int16_t xvid_FIR_6_3_1_0[256][4];
419  int16_t xvid_FIR_14_3_2_1[256][4];  __SCOPE int16_t xvid_FIR_14_3_2_1[256][4];
420  int16_t xvid_FIR_20_6_3_1[256][4];  __SCOPE int16_t xvid_FIR_20_6_3_1[256][4];
421  int16_t xvid_FIR_20_20_6_3[256][4];  __SCOPE int16_t xvid_FIR_20_20_6_3[256][4];
422  int16_t xvid_FIR_23_19_6_3[256][4];  __SCOPE int16_t xvid_FIR_23_19_6_3[256][4];
423  int16_t xvid_FIR_7_20_20_6[256][4];  __SCOPE int16_t xvid_FIR_7_20_20_6[256][4];
424  int16_t xvid_FIR_6_20_20_6[256][4];  __SCOPE int16_t xvid_FIR_6_20_20_6[256][4];
425  int16_t xvid_FIR_6_20_20_7[256][4];  __SCOPE int16_t xvid_FIR_6_20_20_7[256][4];
426  int16_t xvid_FIR_3_6_20_20[256][4];  __SCOPE int16_t xvid_FIR_3_6_20_20[256][4];
427  int16_t xvid_FIR_3_6_19_23[256][4];  __SCOPE int16_t xvid_FIR_3_6_19_23[256][4];
428  int16_t xvid_FIR_1_3_6_20[256][4];  __SCOPE int16_t xvid_FIR_1_3_6_20[256][4];
429  int16_t xvid_FIR_1_2_3_14[256][4];  __SCOPE int16_t xvid_FIR_1_2_3_14[256][4];
430  int16_t xvid_FIR_0_1_3_6[256][4];  __SCOPE int16_t xvid_FIR_0_1_3_6[256][4];
431  int16_t xvid_FIR_0_0_1_3[256][4];  __SCOPE int16_t xvid_FIR_0_0_1_3[256][4];
432  int16_t xvid_FIR_0_0_0_1[256][4];  __SCOPE int16_t xvid_FIR_0_0_0_1[256][4];
433    
434  static void Init_FIR_Table(int16_t Tab[][4],  static void Init_FIR_Table(int16_t Tab[][4],
435                             int A, int B, int C, int D)                             int A, int B, int C, int D)

Legend:
Removed from v.1557  
changed lines
  Added in v.1627

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4