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

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

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

revision 1.4, Sun Oct 17 10:20:15 2004 UTC revision 1.5, Wed Jan 5 23:02:15 2005 UTC
# 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[][]; /* 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    extern int16_t xvid_FIR_1_0_0_0[][];
412    extern int16_t xvid_FIR_3_1_0_0[][];
413    extern int16_t xvid_FIR_6_3_1_0[][];
414    extern int16_t xvid_FIR_14_3_2_1[][];
415    extern int16_t xvid_FIR_20_6_3_1[][];
416    extern int16_t xvid_FIR_20_20_6_3[][];
417    extern int16_t xvid_FIR_23_19_6_3[][];
418    extern int16_t xvid_FIR_7_20_20_6[][];
419    extern int16_t xvid_FIR_6_20_20_6[][];
420    extern int16_t xvid_FIR_6_20_20_7[][];
421    extern int16_t xvid_FIR_3_6_20_20[][];
422    extern int16_t xvid_FIR_3_6_19_23[][];
423    extern int16_t xvid_FIR_1_3_6_20[][];
424    extern int16_t xvid_FIR_1_2_3_14[][];
425    extern int16_t xvid_FIR_0_1_3_6[][];
426    extern int16_t xvid_FIR_0_0_1_3[][];
427    extern int16_t xvid_FIR_0_0_0_1[][];
428    #else
429  int16_t xvid_FIR_1_0_0_0[256][4];  int16_t xvid_FIR_1_0_0_0[256][4];
430  int16_t xvid_FIR_3_1_0_0[256][4];  int16_t xvid_FIR_3_1_0_0[256][4];
431  int16_t xvid_FIR_6_3_1_0[256][4];  int16_t xvid_FIR_6_3_1_0[256][4];
# Line 372  Line 443 
443  int16_t xvid_FIR_0_1_3_6[256][4];  int16_t xvid_FIR_0_1_3_6[256][4];
444  int16_t xvid_FIR_0_0_1_3[256][4];  int16_t xvid_FIR_0_0_1_3[256][4];
445  int16_t xvid_FIR_0_0_0_1[256][4];  int16_t xvid_FIR_0_0_0_1[256][4];
446    #endif
447    
448  static void Init_FIR_Table(int16_t Tab[][4],  static void Init_FIR_Table(int16_t Tab[][4],
449                             int A, int B, int C, int D)                             int A, int B, int C, int D)

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

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