[cvs] / xvidcore / src / utils / mem_transfer.h Repository:
ViewVC logotype

Diff of /xvidcore/src/utils/mem_transfer.h

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

revision 1.8.2.3, Wed Feb 12 11:44:57 2003 UTC revision 1.9, Sat Sep 7 10:19:26 2002 UTC
# Line 3  Line 3 
3   *  XVID MPEG-4 VIDEO CODEC   *  XVID MPEG-4 VIDEO CODEC
4   *  - 8<->16 bit buffer transfer header -   *  - 8<->16 bit buffer transfer header -
5   *   *
6     *  Copyright(C) 2002 Michael Militzer
7     *
8   *  This program is an implementation of a part of one or more MPEG-4   *  This program is an implementation of a part of one or more MPEG-4
9   *  Video tools as specified in ISO/IEC 14496-2 standard.  Those intending   *  Video tools as specified in ISO/IEC 14496-2 standard.  Those intending
10   *  to use this software module in hardware or software products are   *  to use this software module in hardware or software products are
# Line 26  Line 28 
28   *  along with this program ; if not, write to the Free Software   *  along with this program ; if not, write to the Free Software
29   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
30   *   *
  ****************************************************************************/  
 /*****************************************************************************  
  *  
  *  History  
  *  
  *  - Sun Jun 16 00:12:49 2002 Added legal header  
  *                             Cosmetic  
31   *  $Id$   *  $Id$
32   *   *
33   ****************************************************************************/   ****************************************************************************/
34    
   
35  #ifndef _MEM_TRANSFER_H  #ifndef _MEM_TRANSFER_H
36  #define _MEM_TRANSFER_H  #define _MEM_TRANSFER_H
37    
# Line 57  Line 51 
51  /* Implemented functions */  /* Implemented functions */
52  TRANSFER_8TO16COPY transfer_8to16copy_c;  TRANSFER_8TO16COPY transfer_8to16copy_c;
53  TRANSFER_8TO16COPY transfer_8to16copy_mmx;  TRANSFER_8TO16COPY transfer_8to16copy_mmx;
 TRANSFER_8TO16COPY transfer_8to16copy_3dne;  
54  TRANSFER_8TO16COPY transfer_8to16copy_ia64;  TRANSFER_8TO16COPY transfer_8to16copy_ia64;
55    
56  /*****************************************************************************  /*****************************************************************************
# Line 75  Line 68 
68  /* Implemented functions */  /* Implemented functions */
69  TRANSFER_16TO8COPY transfer_16to8copy_c;  TRANSFER_16TO8COPY transfer_16to8copy_c;
70  TRANSFER_16TO8COPY transfer_16to8copy_mmx;  TRANSFER_16TO8COPY transfer_16to8copy_mmx;
 TRANSFER_16TO8COPY transfer_16to8copy_3dne;  
71  TRANSFER_16TO8COPY transfer_16to8copy_ia64;  TRANSFER_16TO8COPY transfer_16to8copy_ia64;
72    
73  /*****************************************************************************  /*****************************************************************************
74   * transfer8to16 + substraction *writeback* op API   * transfer8to16 + substraction op API
75   ****************************************************************************/   ****************************************************************************/
76    
77  typedef void (TRANSFER_8TO16SUB) (int16_t * const dct,  typedef void (TRANSFER_8TO16SUB) (int16_t * const dct,
# Line 95  Line 87 
87  /* Implemented functions */  /* Implemented functions */
88  TRANSFER_8TO16SUB transfer_8to16sub_c;  TRANSFER_8TO16SUB transfer_8to16sub_c;
89  TRANSFER_8TO16SUB transfer_8to16sub_mmx;  TRANSFER_8TO16SUB transfer_8to16sub_mmx;
 TRANSFER_8TO16SUB transfer_8to16sub_3dne;  
90  TRANSFER_8TO16SUB transfer_8to16sub_ia64;  TRANSFER_8TO16SUB transfer_8to16sub_ia64;
91    
92  /*****************************************************************************  /*****************************************************************************
  * transfer8to16 + substraction *readonly* op API  
  ****************************************************************************/  
   
 typedef void (TRANSFER_8TO16SUBRO) (int16_t * const dct,  
                                                                   const uint8_t * const cur,  
                                                                   const uint8_t * ref,  
                                                                   const uint32_t stride);  
   
 typedef TRANSFER_8TO16SUBRO *TRANSFER_8TO16SUBRO_PTR;  
   
 /* Our global function pointer - Initialized in xvid.c */  
 extern TRANSFER_8TO16SUBRO_PTR transfer_8to16subro;  
   
 /* Implemented functions */  
 TRANSFER_8TO16SUBRO transfer_8to16subro_c;  
 TRANSFER_8TO16SUBRO transfer_8to16subro_mmx;  
 TRANSFER_8TO16SUBRO transfer_8to16subro_3dne;  
   
 /*****************************************************************************  
93   * transfer8to16 + substraction op API - Bidirectionnal Version   * transfer8to16 + substraction op API - Bidirectionnal Version
94   ****************************************************************************/   ****************************************************************************/
95    
# Line 136  Line 108 
108  TRANSFER_8TO16SUB2 transfer_8to16sub2_c;  TRANSFER_8TO16SUB2 transfer_8to16sub2_c;
109  TRANSFER_8TO16SUB2 transfer_8to16sub2_mmx;  TRANSFER_8TO16SUB2 transfer_8to16sub2_mmx;
110  TRANSFER_8TO16SUB2 transfer_8to16sub2_xmm;  TRANSFER_8TO16SUB2 transfer_8to16sub2_xmm;
 TRANSFER_8TO16SUB2 transfer_8to16sub2_3dne;  
111  TRANSFER_8TO16SUB2 transfer_8to16sub2_ia64;  TRANSFER_8TO16SUB2 transfer_8to16sub2_ia64;
112    
113    
# Line 156  Line 127 
127  /* Implemented functions */  /* Implemented functions */
128  TRANSFER_16TO8ADD transfer_16to8add_c;  TRANSFER_16TO8ADD transfer_16to8add_c;
129  TRANSFER_16TO8ADD transfer_16to8add_mmx;  TRANSFER_16TO8ADD transfer_16to8add_mmx;
 TRANSFER_16TO8ADD transfer_16to8add_3dne;  
130  TRANSFER_16TO8ADD transfer_16to8add_ia64;  TRANSFER_16TO8ADD transfer_16to8add_ia64;
131    
132  /*****************************************************************************  /*****************************************************************************
# Line 175  Line 145 
145  /* Implemented functions */  /* Implemented functions */
146  TRANSFER8X8_COPY transfer8x8_copy_c;  TRANSFER8X8_COPY transfer8x8_copy_c;
147  TRANSFER8X8_COPY transfer8x8_copy_mmx;  TRANSFER8X8_COPY transfer8x8_copy_mmx;
 TRANSFER8X8_COPY transfer8x8_copy_3dne;  
148  TRANSFER8X8_COPY transfer8x8_copy_ia64;  TRANSFER8X8_COPY transfer8x8_copy_ia64;
149    
   
 static __inline void  
 transfer16x16_copy(uint8_t * const dst,  
                                         const uint8_t * const src,  
                                         const uint32_t stride)  
 {  
         transfer8x8_copy(dst, src, stride);  
         transfer8x8_copy(dst + 8, src + 8, stride);  
         transfer8x8_copy(dst + 8*stride, src + 8*stride, stride);  
         transfer8x8_copy(dst + 8*stride + 8, src + 8*stride + 8, stride);  
 }  
   
 static __inline void  
 transfer32x32_copy(uint8_t * const dst,  
                                         const uint8_t * const src,  
                                         const uint32_t stride)  
 {  
         transfer16x16_copy(dst, src, stride);  
         transfer16x16_copy(dst + 16, src + 16, stride);  
         transfer16x16_copy(dst + 16*stride, src + 16*stride, stride);  
         transfer16x16_copy(dst + 16*stride + 16, src + 16*stride + 16, stride);  
 }  
   
   
150  #endif  #endif

Legend:
Removed from v.1.8.2.3  
changed lines
  Added in v.1.9

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