comparison dsputil.c @ 4240:e880555ad2c6 libavcodec

Move copy_block* functions to dsp dsputil.h Patch by Brian Foley % bfoley A compsoc P nuigalway P ie % Original thread: Date: Nov 26, 2006 6:44 PM Subject: Re: [Ffmpeg-devel] [PATCH] put_mpeg4_qpel16_h_lowpass altivec, take 2
author gpoirier
date Sun, 26 Nov 2006 18:25:07 +0000
parents bbe0bc387a19
children de525a2b41db
comparison
equal deleted inserted replaced
4239:30b14d0f2324 4240:e880555ad2c6
1510 dst[7] = (A*src[7] + B*src[8] + C*src[stride+7] + D*src[stride+8] + 32 - 4) >> 6; 1510 dst[7] = (A*src[7] + B*src[8] + C*src[stride+7] + D*src[stride+8] + 32 - 4) >> 6;
1511 dst+= stride; 1511 dst+= stride;
1512 src+= stride; 1512 src+= stride;
1513 } 1513 }
1514 } 1514 }
1515
1516 static inline void copy_block2(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
1517 {
1518 int i;
1519 for(i=0; i<h; i++)
1520 {
1521 ST16(dst , LD16(src ));
1522 dst+=dstStride;
1523 src+=srcStride;
1524 }
1525 }
1526
1527 static inline void copy_block4(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
1528 {
1529 int i;
1530 for(i=0; i<h; i++)
1531 {
1532 ST32(dst , LD32(src ));
1533 dst+=dstStride;
1534 src+=srcStride;
1535 }
1536 }
1537
1538 static inline void copy_block8(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
1539 {
1540 int i;
1541 for(i=0; i<h; i++)
1542 {
1543 ST32(dst , LD32(src ));
1544 ST32(dst+4 , LD32(src+4 ));
1545 dst+=dstStride;
1546 src+=srcStride;
1547 }
1548 }
1549
1550 static inline void copy_block16(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
1551 {
1552 int i;
1553 for(i=0; i<h; i++)
1554 {
1555 ST32(dst , LD32(src ));
1556 ST32(dst+4 , LD32(src+4 ));
1557 ST32(dst+8 , LD32(src+8 ));
1558 ST32(dst+12, LD32(src+12));
1559 dst+=dstStride;
1560 src+=srcStride;
1561 }
1562 }
1563
1564 static inline void copy_block17(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
1565 {
1566 int i;
1567 for(i=0; i<h; i++)
1568 {
1569 ST32(dst , LD32(src ));
1570 ST32(dst+4 , LD32(src+4 ));
1571 ST32(dst+8 , LD32(src+8 ));
1572 ST32(dst+12, LD32(src+12));
1573 dst[16]= src[16];
1574 dst+=dstStride;
1575 src+=srcStride;
1576 }
1577 }
1578
1579 static inline void copy_block9(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h)
1580 {
1581 int i;
1582 for(i=0; i<h; i++)
1583 {
1584 ST32(dst , LD32(src ));
1585 ST32(dst+4 , LD32(src+4 ));
1586 dst[8]= src[8];
1587 dst+=dstStride;
1588 src+=srcStride;
1589 }
1590 }
1591
1592 1515
1593 #define QPEL_MC(r, OPNAME, RND, OP) \ 1516 #define QPEL_MC(r, OPNAME, RND, OP) \
1594 static void OPNAME ## mpeg4_qpel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){\ 1517 static void OPNAME ## mpeg4_qpel8_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){\
1595 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;\ 1518 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;\
1596 int i;\ 1519 int i;\