/src/ffmpeg/libavcodec/h264chroma_template.c
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2000, 2001 Fabrice Bellard |
3 | | * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at> |
4 | | * |
5 | | * This file is part of FFmpeg. |
6 | | * |
7 | | * FFmpeg is free software; you can redistribute it and/or |
8 | | * modify it under the terms of the GNU Lesser General Public |
9 | | * License as published by the Free Software Foundation; either |
10 | | * version 2.1 of the License, or (at your option) any later version. |
11 | | * |
12 | | * FFmpeg is distributed in the hope that it will be useful, |
13 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
15 | | * Lesser General Public License for more details. |
16 | | * |
17 | | * You should have received a copy of the GNU Lesser General Public |
18 | | * License along with FFmpeg; if not, write to the Free Software |
19 | | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
20 | | */ |
21 | | |
22 | | |
23 | | #include <stddef.h> |
24 | | |
25 | | #include "libavutil/avassert.h" |
26 | | #include "bit_depth_template.c" |
27 | | |
28 | | #define H264_CHROMA_MC(OPNAME, OP)\ |
29 | 36.7M | MC2_STATIC void FUNCC(ff_ ## OPNAME ## h264_chroma_mc2)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ |
30 | 36.7M | {\ |
31 | 36.7M | pixel *dst = (pixel*)_dst;\ |
32 | 36.7M | const pixel *src = (const pixel*)_src;\ |
33 | 36.7M | const int A=(8-x)*(8-y);\ |
34 | 36.7M | const int B=( x)*(8-y);\ |
35 | 36.7M | const int C=(8-x)*( y);\ |
36 | 36.7M | const int D=( x)*( y);\ |
37 | 36.7M | int i;\ |
38 | 36.7M | stride >>= sizeof(pixel)-1;\ |
39 | 36.7M | \ |
40 | 36.7M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ |
41 | 36.7M | \ |
42 | 36.7M | if(D){\ |
43 | 27.0M | for(i=0; i<h; i++){\ |
44 | 20.7M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ |
45 | 20.7M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ |
46 | 20.7M | dst+= stride;\ |
47 | 20.7M | src+= stride;\ |
48 | 20.7M | }\ |
49 | 30.4M | } else if (B + C) {\ |
50 | 5.88M | const int E= B+C;\ |
51 | 5.88M | const ptrdiff_t step = C ? stride : 1;\ |
52 | 25.2M | for(i=0; i<h; i++){\ |
53 | 19.3M | OP(dst[0], (A*src[0] + E*src[step+0]));\ |
54 | 19.3M | OP(dst[1], (A*src[1] + E*src[step+1]));\ |
55 | 19.3M | dst+= stride;\ |
56 | 19.3M | src+= stride;\ |
57 | 19.3M | }\ |
58 | 24.5M | } else {\ |
59 | 86.9M | for ( i = 0; i < h; i++){\ |
60 | 62.4M | OP(dst[0], A * src[0]);\ |
61 | 62.4M | OP(dst[1], A * src[1]);\ |
62 | 62.4M | dst += stride;\ |
63 | 62.4M | src += stride;\ |
64 | 62.4M | }\ |
65 | 24.5M | }\ |
66 | 36.7M | }\ ff_put_h264_chroma_mc2_8_c Line | Count | Source | 29 | 15.7M | MC2_STATIC void FUNCC(ff_ ## OPNAME ## h264_chroma_mc2)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ | 30 | 15.7M | {\ | 31 | 15.7M | pixel *dst = (pixel*)_dst;\ | 32 | 15.7M | const pixel *src = (const pixel*)_src;\ | 33 | 15.7M | const int A=(8-x)*(8-y);\ | 34 | 15.7M | const int B=( x)*(8-y);\ | 35 | 15.7M | const int C=(8-x)*( y);\ | 36 | 15.7M | const int D=( x)*( y);\ | 37 | 15.7M | int i;\ | 38 | 15.7M | stride >>= sizeof(pixel)-1;\ | 39 | 15.7M | \ | 40 | 15.7M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ | 41 | 15.7M | \ | 42 | 15.7M | if(D){\ | 43 | 8.39M | for(i=0; i<h; i++){\ | 44 | 6.12M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ | 45 | 6.12M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ | 46 | 6.12M | dst+= stride;\ | 47 | 6.12M | src+= stride;\ | 48 | 6.12M | }\ | 49 | 13.5M | } else if (B + C) {\ | 50 | 1.95M | const int E= B+C;\ | 51 | 1.95M | const ptrdiff_t step = C ? stride : 1;\ | 52 | 6.79M | for(i=0; i<h; i++){\ | 53 | 4.84M | OP(dst[0], (A*src[0] + E*src[step+0]));\ | 54 | 4.84M | OP(dst[1], (A*src[1] + E*src[step+1]));\ | 55 | 4.84M | dst+= stride;\ | 56 | 4.84M | src+= stride;\ | 57 | 4.84M | }\ | 58 | 11.5M | } else {\ | 59 | 35.0M | for ( i = 0; i < h; i++){\ | 60 | 23.4M | OP(dst[0], A * src[0]);\ | 61 | 23.4M | OP(dst[1], A * src[1]);\ | 62 | 23.4M | dst += stride;\ | 63 | 23.4M | src += stride;\ | 64 | 23.4M | }\ | 65 | 11.5M | }\ | 66 | 15.7M | }\ |
ff_avg_h264_chroma_mc2_8_c Line | Count | Source | 29 | 2.42M | MC2_STATIC void FUNCC(ff_ ## OPNAME ## h264_chroma_mc2)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ | 30 | 2.42M | {\ | 31 | 2.42M | pixel *dst = (pixel*)_dst;\ | 32 | 2.42M | const pixel *src = (const pixel*)_src;\ | 33 | 2.42M | const int A=(8-x)*(8-y);\ | 34 | 2.42M | const int B=( x)*(8-y);\ | 35 | 2.42M | const int C=(8-x)*( y);\ | 36 | 2.42M | const int D=( x)*( y);\ | 37 | 2.42M | int i;\ | 38 | 2.42M | stride >>= sizeof(pixel)-1;\ | 39 | 2.42M | \ | 40 | 2.42M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ | 41 | 2.42M | \ | 42 | 2.42M | if(D){\ | 43 | 266k | for(i=0; i<h; i++){\ | 44 | 165k | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ | 45 | 165k | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ | 46 | 165k | dst+= stride;\ | 47 | 165k | src+= stride;\ | 48 | 165k | }\ | 49 | 2.32M | } else if (B + C) {\ | 50 | 87.7k | const int E= B+C;\ | 51 | 87.7k | const ptrdiff_t step = C ? stride : 1;\ | 52 | 247k | for(i=0; i<h; i++){\ | 53 | 159k | OP(dst[0], (A*src[0] + E*src[step+0]));\ | 54 | 159k | OP(dst[1], (A*src[1] + E*src[step+1]));\ | 55 | 159k | dst+= stride;\ | 56 | 159k | src+= stride;\ | 57 | 159k | }\ | 58 | 2.23M | } else {\ | 59 | 6.76M | for ( i = 0; i < h; i++){\ | 60 | 4.53M | OP(dst[0], A * src[0]);\ | 61 | 4.53M | OP(dst[1], A * src[1]);\ | 62 | 4.53M | dst += stride;\ | 63 | 4.53M | src += stride;\ | 64 | 4.53M | }\ | 65 | 2.23M | }\ | 66 | 2.42M | }\ |
h264chroma.c:ff_put_h264_chroma_mc2_16_c Line | Count | Source | 29 | 12.7M | MC2_STATIC void FUNCC(ff_ ## OPNAME ## h264_chroma_mc2)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ | 30 | 12.7M | {\ | 31 | 12.7M | pixel *dst = (pixel*)_dst;\ | 32 | 12.7M | const pixel *src = (const pixel*)_src;\ | 33 | 12.7M | const int A=(8-x)*(8-y);\ | 34 | 12.7M | const int B=( x)*(8-y);\ | 35 | 12.7M | const int C=(8-x)*( y);\ | 36 | 12.7M | const int D=( x)*( y);\ | 37 | 12.7M | int i;\ | 38 | 12.7M | stride >>= sizeof(pixel)-1;\ | 39 | 12.7M | \ | 40 | 12.7M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ | 41 | 12.7M | \ | 42 | 12.7M | if(D){\ | 43 | 15.9M | for(i=0; i<h; i++){\ | 44 | 12.6M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ | 45 | 12.6M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ | 46 | 12.6M | dst+= stride;\ | 47 | 12.6M | src+= stride;\ | 48 | 12.6M | }\ | 49 | 9.50M | } else if (B + C) {\ | 50 | 3.21M | const int E= B+C;\ | 51 | 3.21M | const ptrdiff_t step = C ? stride : 1;\ | 52 | 15.6M | for(i=0; i<h; i++){\ | 53 | 12.4M | OP(dst[0], (A*src[0] + E*src[step+0]));\ | 54 | 12.4M | OP(dst[1], (A*src[1] + E*src[step+1]));\ | 55 | 12.4M | dst+= stride;\ | 56 | 12.4M | src+= stride;\ | 57 | 12.4M | }\ | 58 | 6.28M | } else {\ | 59 | 26.8M | for ( i = 0; i < h; i++){\ | 60 | 20.5M | OP(dst[0], A * src[0]);\ | 61 | 20.5M | OP(dst[1], A * src[1]);\ | 62 | 20.5M | dst += stride;\ | 63 | 20.5M | src += stride;\ | 64 | 20.5M | }\ | 65 | 6.28M | }\ | 66 | 12.7M | }\ |
h264chroma.c:ff_avg_h264_chroma_mc2_16_c Line | Count | Source | 29 | 5.72M | MC2_STATIC void FUNCC(ff_ ## OPNAME ## h264_chroma_mc2)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ | 30 | 5.72M | {\ | 31 | 5.72M | pixel *dst = (pixel*)_dst;\ | 32 | 5.72M | const pixel *src = (const pixel*)_src;\ | 33 | 5.72M | const int A=(8-x)*(8-y);\ | 34 | 5.72M | const int B=( x)*(8-y);\ | 35 | 5.72M | const int C=(8-x)*( y);\ | 36 | 5.72M | const int D=( x)*( y);\ | 37 | 5.72M | int i;\ | 38 | 5.72M | stride >>= sizeof(pixel)-1;\ | 39 | 5.72M | \ | 40 | 5.72M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ | 41 | 5.72M | \ | 42 | 5.72M | if(D){\ | 43 | 2.45M | for(i=0; i<h; i++){\ | 44 | 1.80M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ | 45 | 1.80M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ | 46 | 1.80M | dst+= stride;\ | 47 | 1.80M | src+= stride;\ | 48 | 1.80M | }\ | 49 | 5.08M | } else if (B + C) {\ | 50 | 626k | const int E= B+C;\ | 51 | 626k | const ptrdiff_t step = C ? stride : 1;\ | 52 | 2.50M | for(i=0; i<h; i++){\ | 53 | 1.87M | OP(dst[0], (A*src[0] + E*src[step+0]));\ | 54 | 1.87M | OP(dst[1], (A*src[1] + E*src[step+1]));\ | 55 | 1.87M | dst+= stride;\ | 56 | 1.87M | src+= stride;\ | 57 | 1.87M | }\ | 58 | 4.45M | } else {\ | 59 | 18.3M | for ( i = 0; i < h; i++){\ | 60 | 13.8M | OP(dst[0], A * src[0]);\ | 61 | 13.8M | OP(dst[1], A * src[1]);\ | 62 | 13.8M | dst += stride;\ | 63 | 13.8M | src += stride;\ | 64 | 13.8M | }\ | 65 | 4.45M | }\ | 66 | 5.72M | }\ |
|
67 | | \ |
68 | 119M | static void FUNCC(OPNAME ## h264_chroma_mc4)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ |
69 | 119M | {\ |
70 | 119M | pixel *dst = (pixel*)_dst;\ |
71 | 119M | const pixel *src = (const pixel*)_src;\ |
72 | 119M | const int A=(8-x)*(8-y);\ |
73 | 119M | const int B=( x)*(8-y);\ |
74 | 119M | const int C=(8-x)*( y);\ |
75 | 119M | const int D=( x)*( y);\ |
76 | 119M | int i;\ |
77 | 119M | stride >>= sizeof(pixel)-1;\ |
78 | 119M | \ |
79 | 119M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ |
80 | 119M | \ |
81 | 119M | if(D){\ |
82 | 125M | for(i=0; i<h; i++){\ |
83 | 106M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ |
84 | 106M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ |
85 | 106M | OP(dst[2], (A*src[2] + B*src[3] + C*src[stride+2] + D*src[stride+3]));\ |
86 | 106M | OP(dst[3], (A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4]));\ |
87 | 106M | dst+= stride;\ |
88 | 106M | src+= stride;\ |
89 | 106M | }\ |
90 | 99.6M | } else if (B + C) {\ |
91 | 17.3M | const int E= B+C;\ |
92 | 17.3M | const ptrdiff_t step = C ? stride : 1;\ |
93 | 118M | for(i=0; i<h; i++){\ |
94 | 100M | OP(dst[0], (A*src[0] + E*src[step+0]));\ |
95 | 100M | OP(dst[1], (A*src[1] + E*src[step+1]));\ |
96 | 100M | OP(dst[2], (A*src[2] + E*src[step+2]));\ |
97 | 100M | OP(dst[3], (A*src[3] + E*src[step+3]));\ |
98 | 100M | dst+= stride;\ |
99 | 100M | src+= stride;\ |
100 | 100M | }\ |
101 | 82.3M | } else {\ |
102 | 517M | for ( i = 0; i < h; i++){\ |
103 | 434M | OP(dst[0], A * src[0]);\ |
104 | 434M | OP(dst[1], A * src[1]);\ |
105 | 434M | OP(dst[2], A * src[2]);\ |
106 | 434M | OP(dst[3], A * src[3]);\ |
107 | 434M | dst += stride;\ |
108 | 434M | src += stride;\ |
109 | 434M | }\ |
110 | 82.3M | }\ |
111 | 119M | }\ h264chroma.c:put_h264_chroma_mc4_16_c Line | Count | Source | 68 | 38.9M | static void FUNCC(OPNAME ## h264_chroma_mc4)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ | 69 | 38.9M | {\ | 70 | 38.9M | pixel *dst = (pixel*)_dst;\ | 71 | 38.9M | const pixel *src = (const pixel*)_src;\ | 72 | 38.9M | const int A=(8-x)*(8-y);\ | 73 | 38.9M | const int B=( x)*(8-y);\ | 74 | 38.9M | const int C=(8-x)*( y);\ | 75 | 38.9M | const int D=( x)*( y);\ | 76 | 38.9M | int i;\ | 77 | 38.9M | stride >>= sizeof(pixel)-1;\ | 78 | 38.9M | \ | 79 | 38.9M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ | 80 | 38.9M | \ | 81 | 38.9M | if(D){\ | 82 | 46.4M | for(i=0; i<h; i++){\ | 83 | 40.2M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ | 84 | 40.2M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ | 85 | 40.2M | OP(dst[2], (A*src[2] + B*src[3] + C*src[stride+2] + D*src[stride+3]));\ | 86 | 40.2M | OP(dst[3], (A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4]));\ | 87 | 40.2M | dst+= stride;\ | 88 | 40.2M | src+= stride;\ | 89 | 40.2M | }\ | 90 | 32.7M | } else if (B + C) {\ | 91 | 6.24M | const int E= B+C;\ | 92 | 6.24M | const ptrdiff_t step = C ? stride : 1;\ | 93 | 50.4M | for(i=0; i<h; i++){\ | 94 | 44.2M | OP(dst[0], (A*src[0] + E*src[step+0]));\ | 95 | 44.2M | OP(dst[1], (A*src[1] + E*src[step+1]));\ | 96 | 44.2M | OP(dst[2], (A*src[2] + E*src[step+2]));\ | 97 | 44.2M | OP(dst[3], (A*src[3] + E*src[step+3]));\ | 98 | 44.2M | dst+= stride;\ | 99 | 44.2M | src+= stride;\ | 100 | 44.2M | }\ | 101 | 26.4M | } else {\ | 102 | 188M | for ( i = 0; i < h; i++){\ | 103 | 161M | OP(dst[0], A * src[0]);\ | 104 | 161M | OP(dst[1], A * src[1]);\ | 105 | 161M | OP(dst[2], A * src[2]);\ | 106 | 161M | OP(dst[3], A * src[3]);\ | 107 | 161M | dst += stride;\ | 108 | 161M | src += stride;\ | 109 | 161M | }\ | 110 | 26.4M | }\ | 111 | 38.9M | }\ |
h264chroma.c:avg_h264_chroma_mc4_16_c Line | Count | Source | 68 | 17.6M | static void FUNCC(OPNAME ## h264_chroma_mc4)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ | 69 | 17.6M | {\ | 70 | 17.6M | pixel *dst = (pixel*)_dst;\ | 71 | 17.6M | const pixel *src = (const pixel*)_src;\ | 72 | 17.6M | const int A=(8-x)*(8-y);\ | 73 | 17.6M | const int B=( x)*(8-y);\ | 74 | 17.6M | const int C=(8-x)*( y);\ | 75 | 17.6M | const int D=( x)*( y);\ | 76 | 17.6M | int i;\ | 77 | 17.6M | stride >>= sizeof(pixel)-1;\ | 78 | 17.6M | \ | 79 | 17.6M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ | 80 | 17.6M | \ | 81 | 17.6M | if(D){\ | 82 | 7.74M | for(i=0; i<h; i++){\ | 83 | 6.88M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ | 84 | 6.88M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ | 85 | 6.88M | OP(dst[2], (A*src[2] + B*src[3] + C*src[stride+2] + D*src[stride+3]));\ | 86 | 6.88M | OP(dst[3], (A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4]));\ | 87 | 6.88M | dst+= stride;\ | 88 | 6.88M | src+= stride;\ | 89 | 6.88M | }\ | 90 | 16.7M | } else if (B + C) {\ | 91 | 1.58M | const int E= B+C;\ | 92 | 1.58M | const ptrdiff_t step = C ? stride : 1;\ | 93 | 12.3M | for(i=0; i<h; i++){\ | 94 | 10.7M | OP(dst[0], (A*src[0] + E*src[step+0]));\ | 95 | 10.7M | OP(dst[1], (A*src[1] + E*src[step+1]));\ | 96 | 10.7M | OP(dst[2], (A*src[2] + E*src[step+2]));\ | 97 | 10.7M | OP(dst[3], (A*src[3] + E*src[step+3]));\ | 98 | 10.7M | dst+= stride;\ | 99 | 10.7M | src+= stride;\ | 100 | 10.7M | }\ | 101 | 15.1M | } else {\ | 102 | 119M | for ( i = 0; i < h; i++){\ | 103 | 104M | OP(dst[0], A * src[0]);\ | 104 | 104M | OP(dst[1], A * src[1]);\ | 105 | 104M | OP(dst[2], A * src[2]);\ | 106 | 104M | OP(dst[3], A * src[3]);\ | 107 | 104M | dst += stride;\ | 108 | 104M | src += stride;\ | 109 | 104M | }\ | 110 | 15.1M | }\ | 111 | 17.6M | }\ |
h264chroma.c:put_h264_chroma_mc4_8_c Line | Count | Source | 68 | 44.0M | static void FUNCC(OPNAME ## h264_chroma_mc4)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ | 69 | 44.0M | {\ | 70 | 44.0M | pixel *dst = (pixel*)_dst;\ | 71 | 44.0M | const pixel *src = (const pixel*)_src;\ | 72 | 44.0M | const int A=(8-x)*(8-y);\ | 73 | 44.0M | const int B=( x)*(8-y);\ | 74 | 44.0M | const int C=(8-x)*( y);\ | 75 | 44.0M | const int D=( x)*( y);\ | 76 | 44.0M | int i;\ | 77 | 44.0M | stride >>= sizeof(pixel)-1;\ | 78 | 44.0M | \ | 79 | 44.0M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ | 80 | 44.0M | \ | 81 | 44.0M | if(D){\ | 82 | 59.4M | for(i=0; i<h; i++){\ | 83 | 49.3M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ | 84 | 49.3M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ | 85 | 49.3M | OP(dst[2], (A*src[2] + B*src[3] + C*src[stride+2] + D*src[stride+3]));\ | 86 | 49.3M | OP(dst[3], (A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4]));\ | 87 | 49.3M | dst+= stride;\ | 88 | 49.3M | src+= stride;\ | 89 | 49.3M | }\ | 90 | 33.9M | } else if (B + C) {\ | 91 | 8.04M | const int E= B+C;\ | 92 | 8.04M | const ptrdiff_t step = C ? stride : 1;\ | 93 | 47.5M | for(i=0; i<h; i++){\ | 94 | 39.4M | OP(dst[0], (A*src[0] + E*src[step+0]));\ | 95 | 39.4M | OP(dst[1], (A*src[1] + E*src[step+1]));\ | 96 | 39.4M | OP(dst[2], (A*src[2] + E*src[step+2]));\ | 97 | 39.4M | OP(dst[3], (A*src[3] + E*src[step+3]));\ | 98 | 39.4M | dst+= stride;\ | 99 | 39.4M | src+= stride;\ | 100 | 39.4M | }\ | 101 | 25.9M | } else {\ | 102 | 134M | for ( i = 0; i < h; i++){\ | 103 | 108M | OP(dst[0], A * src[0]);\ | 104 | 108M | OP(dst[1], A * src[1]);\ | 105 | 108M | OP(dst[2], A * src[2]);\ | 106 | 108M | OP(dst[3], A * src[3]);\ | 107 | 108M | dst += stride;\ | 108 | 108M | src += stride;\ | 109 | 108M | }\ | 110 | 25.9M | }\ | 111 | 44.0M | }\ |
h264chroma.c:avg_h264_chroma_mc4_8_c Line | Count | Source | 68 | 18.5M | static void FUNCC(OPNAME ## h264_chroma_mc4)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ | 69 | 18.5M | {\ | 70 | 18.5M | pixel *dst = (pixel*)_dst;\ | 71 | 18.5M | const pixel *src = (const pixel*)_src;\ | 72 | 18.5M | const int A=(8-x)*(8-y);\ | 73 | 18.5M | const int B=( x)*(8-y);\ | 74 | 18.5M | const int C=(8-x)*( y);\ | 75 | 18.5M | const int D=( x)*( y);\ | 76 | 18.5M | int i;\ | 77 | 18.5M | stride >>= sizeof(pixel)-1;\ | 78 | 18.5M | \ | 79 | 18.5M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ | 80 | 18.5M | \ | 81 | 18.5M | if(D){\ | 82 | 12.1M | for(i=0; i<h; i++){\ | 83 | 9.87M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ | 84 | 9.87M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ | 85 | 9.87M | OP(dst[2], (A*src[2] + B*src[3] + C*src[stride+2] + D*src[stride+3]));\ | 86 | 9.87M | OP(dst[3], (A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4]));\ | 87 | 9.87M | dst+= stride;\ | 88 | 9.87M | src+= stride;\ | 89 | 9.87M | }\ | 90 | 16.2M | } else if (B + C) {\ | 91 | 1.47M | const int E= B+C;\ | 92 | 1.47M | const ptrdiff_t step = C ? stride : 1;\ | 93 | 7.90M | for(i=0; i<h; i++){\ | 94 | 6.42M | OP(dst[0], (A*src[0] + E*src[step+0]));\ | 95 | 6.42M | OP(dst[1], (A*src[1] + E*src[step+1]));\ | 96 | 6.42M | OP(dst[2], (A*src[2] + E*src[step+2]));\ | 97 | 6.42M | OP(dst[3], (A*src[3] + E*src[step+3]));\ | 98 | 6.42M | dst+= stride;\ | 99 | 6.42M | src+= stride;\ | 100 | 6.42M | }\ | 101 | 14.7M | } else {\ | 102 | 75.3M | for ( i = 0; i < h; i++){\ | 103 | 60.5M | OP(dst[0], A * src[0]);\ | 104 | 60.5M | OP(dst[1], A * src[1]);\ | 105 | 60.5M | OP(dst[2], A * src[2]);\ | 106 | 60.5M | OP(dst[3], A * src[3]);\ | 107 | 60.5M | dst += stride;\ | 108 | 60.5M | src += stride;\ | 109 | 60.5M | }\ | 110 | 14.7M | }\ | 111 | 18.5M | }\ |
|
112 | | \ |
113 | 245M | static void FUNCC(OPNAME ## h264_chroma_mc8)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ |
114 | 245M | {\ |
115 | 245M | pixel *dst = (pixel*)_dst;\ |
116 | 245M | const pixel *src = (const pixel*)_src;\ |
117 | 245M | const int A=(8-x)*(8-y);\ |
118 | 245M | const int B=( x)*(8-y);\ |
119 | 245M | const int C=(8-x)*( y);\ |
120 | 245M | const int D=( x)*( y);\ |
121 | 245M | int i;\ |
122 | 245M | stride >>= sizeof(pixel)-1;\ |
123 | 245M | \ |
124 | 245M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ |
125 | 245M | \ |
126 | 245M | if(D){\ |
127 | 167M | for(i=0; i<h; i++){\ |
128 | 150M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ |
129 | 150M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ |
130 | 150M | OP(dst[2], (A*src[2] + B*src[3] + C*src[stride+2] + D*src[stride+3]));\ |
131 | 150M | OP(dst[3], (A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4]));\ |
132 | 150M | OP(dst[4], (A*src[4] + B*src[5] + C*src[stride+4] + D*src[stride+5]));\ |
133 | 150M | OP(dst[5], (A*src[5] + B*src[6] + C*src[stride+5] + D*src[stride+6]));\ |
134 | 150M | OP(dst[6], (A*src[6] + B*src[7] + C*src[stride+6] + D*src[stride+7]));\ |
135 | 150M | OP(dst[7], (A*src[7] + B*src[8] + C*src[stride+7] + D*src[stride+8]));\ |
136 | 150M | dst+= stride;\ |
137 | 150M | src+= stride;\ |
138 | 150M | }\ |
139 | 228M | } else if (B + C) {\ |
140 | 34.4M | const int E= B+C;\ |
141 | 34.4M | const ptrdiff_t step = C ? stride : 1;\ |
142 | 350M | for(i=0; i<h; i++){\ |
143 | 316M | OP(dst[0], (A*src[0] + E*src[step+0]));\ |
144 | 316M | OP(dst[1], (A*src[1] + E*src[step+1]));\ |
145 | 316M | OP(dst[2], (A*src[2] + E*src[step+2]));\ |
146 | 316M | OP(dst[3], (A*src[3] + E*src[step+3]));\ |
147 | 316M | OP(dst[4], (A*src[4] + E*src[step+4]));\ |
148 | 316M | OP(dst[5], (A*src[5] + E*src[step+5]));\ |
149 | 316M | OP(dst[6], (A*src[6] + E*src[step+6]));\ |
150 | 316M | OP(dst[7], (A*src[7] + E*src[step+7]));\ |
151 | 316M | dst+= stride;\ |
152 | 316M | src+= stride;\ |
153 | 316M | }\ |
154 | 194M | } else {\ |
155 | 2.19G | for ( i = 0; i < h; i++){\ |
156 | 1.99G | OP(dst[0], A * src[0]);\ |
157 | 1.99G | OP(dst[1], A * src[1]);\ |
158 | 1.99G | OP(dst[2], A * src[2]);\ |
159 | 1.99G | OP(dst[3], A * src[3]);\ |
160 | 1.99G | OP(dst[4], A * src[4]);\ |
161 | 1.99G | OP(dst[5], A * src[5]);\ |
162 | 1.99G | OP(dst[6], A * src[6]);\ |
163 | 1.99G | OP(dst[7], A * src[7]);\ |
164 | 1.99G | dst += stride;\ |
165 | 1.99G | src += stride;\ |
166 | 1.99G | }\ |
167 | 194M | }\ |
168 | 245M | } h264chroma.c:put_h264_chroma_mc8_16_c Line | Count | Source | 113 | 99.3M | static void FUNCC(OPNAME ## h264_chroma_mc8)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ | 114 | 99.3M | {\ | 115 | 99.3M | pixel *dst = (pixel*)_dst;\ | 116 | 99.3M | const pixel *src = (const pixel*)_src;\ | 117 | 99.3M | const int A=(8-x)*(8-y);\ | 118 | 99.3M | const int B=( x)*(8-y);\ | 119 | 99.3M | const int C=(8-x)*( y);\ | 120 | 99.3M | const int D=( x)*( y);\ | 121 | 99.3M | int i;\ | 122 | 99.3M | stride >>= sizeof(pixel)-1;\ | 123 | 99.3M | \ | 124 | 99.3M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ | 125 | 99.3M | \ | 126 | 99.3M | if(D){\ | 127 | 76.7M | for(i=0; i<h; i++){\ | 128 | 69.8M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ | 129 | 69.8M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ | 130 | 69.8M | OP(dst[2], (A*src[2] + B*src[3] + C*src[stride+2] + D*src[stride+3]));\ | 131 | 69.8M | OP(dst[3], (A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4]));\ | 132 | 69.8M | OP(dst[4], (A*src[4] + B*src[5] + C*src[stride+4] + D*src[stride+5]));\ | 133 | 69.8M | OP(dst[5], (A*src[5] + B*src[6] + C*src[stride+5] + D*src[stride+6]));\ | 134 | 69.8M | OP(dst[6], (A*src[6] + B*src[7] + C*src[stride+6] + D*src[stride+7]));\ | 135 | 69.8M | OP(dst[7], (A*src[7] + B*src[8] + C*src[stride+7] + D*src[stride+8]));\ | 136 | 69.8M | dst+= stride;\ | 137 | 69.8M | src+= stride;\ | 138 | 69.8M | }\ | 139 | 92.4M | } else if (B + C) {\ | 140 | 9.30M | const int E= B+C;\ | 141 | 9.30M | const ptrdiff_t step = C ? stride : 1;\ | 142 | 114M | for(i=0; i<h; i++){\ | 143 | 104M | OP(dst[0], (A*src[0] + E*src[step+0]));\ | 144 | 104M | OP(dst[1], (A*src[1] + E*src[step+1]));\ | 145 | 104M | OP(dst[2], (A*src[2] + E*src[step+2]));\ | 146 | 104M | OP(dst[3], (A*src[3] + E*src[step+3]));\ | 147 | 104M | OP(dst[4], (A*src[4] + E*src[step+4]));\ | 148 | 104M | OP(dst[5], (A*src[5] + E*src[step+5]));\ | 149 | 104M | OP(dst[6], (A*src[6] + E*src[step+6]));\ | 150 | 104M | OP(dst[7], (A*src[7] + E*src[step+7]));\ | 151 | 104M | dst+= stride;\ | 152 | 104M | src+= stride;\ | 153 | 104M | }\ | 154 | 83.1M | } else {\ | 155 | 1.03G | for ( i = 0; i < h; i++){\ | 156 | 955M | OP(dst[0], A * src[0]);\ | 157 | 955M | OP(dst[1], A * src[1]);\ | 158 | 955M | OP(dst[2], A * src[2]);\ | 159 | 955M | OP(dst[3], A * src[3]);\ | 160 | 955M | OP(dst[4], A * src[4]);\ | 161 | 955M | OP(dst[5], A * src[5]);\ | 162 | 955M | OP(dst[6], A * src[6]);\ | 163 | 955M | OP(dst[7], A * src[7]);\ | 164 | 955M | dst += stride;\ | 165 | 955M | src += stride;\ | 166 | 955M | }\ | 167 | 83.1M | }\ | 168 | 99.3M | } |
h264chroma.c:avg_h264_chroma_mc8_16_c Line | Count | Source | 113 | 12.3M | static void FUNCC(OPNAME ## h264_chroma_mc8)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ | 114 | 12.3M | {\ | 115 | 12.3M | pixel *dst = (pixel*)_dst;\ | 116 | 12.3M | const pixel *src = (const pixel*)_src;\ | 117 | 12.3M | const int A=(8-x)*(8-y);\ | 118 | 12.3M | const int B=( x)*(8-y);\ | 119 | 12.3M | const int C=(8-x)*( y);\ | 120 | 12.3M | const int D=( x)*( y);\ | 121 | 12.3M | int i;\ | 122 | 12.3M | stride >>= sizeof(pixel)-1;\ | 123 | 12.3M | \ | 124 | 12.3M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ | 125 | 12.3M | \ | 126 | 12.3M | if(D){\ | 127 | 10.7M | for(i=0; i<h; i++){\ | 128 | 9.72M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ | 129 | 9.72M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ | 130 | 9.72M | OP(dst[2], (A*src[2] + B*src[3] + C*src[stride+2] + D*src[stride+3]));\ | 131 | 9.72M | OP(dst[3], (A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4]));\ | 132 | 9.72M | OP(dst[4], (A*src[4] + B*src[5] + C*src[stride+4] + D*src[stride+5]));\ | 133 | 9.72M | OP(dst[5], (A*src[5] + B*src[6] + C*src[stride+5] + D*src[stride+6]));\ | 134 | 9.72M | OP(dst[6], (A*src[6] + B*src[7] + C*src[stride+6] + D*src[stride+7]));\ | 135 | 9.72M | OP(dst[7], (A*src[7] + B*src[8] + C*src[stride+7] + D*src[stride+8]));\ | 136 | 9.72M | dst+= stride;\ | 137 | 9.72M | src+= stride;\ | 138 | 9.72M | }\ | 139 | 11.3M | } else if (B + C) {\ | 140 | 2.08M | const int E= B+C;\ | 141 | 2.08M | const ptrdiff_t step = C ? stride : 1;\ | 142 | 24.9M | for(i=0; i<h; i++){\ | 143 | 22.8M | OP(dst[0], (A*src[0] + E*src[step+0]));\ | 144 | 22.8M | OP(dst[1], (A*src[1] + E*src[step+1]));\ | 145 | 22.8M | OP(dst[2], (A*src[2] + E*src[step+2]));\ | 146 | 22.8M | OP(dst[3], (A*src[3] + E*src[step+3]));\ | 147 | 22.8M | OP(dst[4], (A*src[4] + E*src[step+4]));\ | 148 | 22.8M | OP(dst[5], (A*src[5] + E*src[step+5]));\ | 149 | 22.8M | OP(dst[6], (A*src[6] + E*src[step+6]));\ | 150 | 22.8M | OP(dst[7], (A*src[7] + E*src[step+7]));\ | 151 | 22.8M | dst+= stride;\ | 152 | 22.8M | src+= stride;\ | 153 | 22.8M | }\ | 154 | 9.22M | } else {\ | 155 | 115M | for ( i = 0; i < h; i++){\ | 156 | 106M | OP(dst[0], A * src[0]);\ | 157 | 106M | OP(dst[1], A * src[1]);\ | 158 | 106M | OP(dst[2], A * src[2]);\ | 159 | 106M | OP(dst[3], A * src[3]);\ | 160 | 106M | OP(dst[4], A * src[4]);\ | 161 | 106M | OP(dst[5], A * src[5]);\ | 162 | 106M | OP(dst[6], A * src[6]);\ | 163 | 106M | OP(dst[7], A * src[7]);\ | 164 | 106M | dst += stride;\ | 165 | 106M | src += stride;\ | 166 | 106M | }\ | 167 | 9.22M | }\ | 168 | 12.3M | } |
h264chroma.c:put_h264_chroma_mc8_8_c Line | Count | Source | 113 | 123M | static void FUNCC(OPNAME ## h264_chroma_mc8)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ | 114 | 123M | {\ | 115 | 123M | pixel *dst = (pixel*)_dst;\ | 116 | 123M | const pixel *src = (const pixel*)_src;\ | 117 | 123M | const int A=(8-x)*(8-y);\ | 118 | 123M | const int B=( x)*(8-y);\ | 119 | 123M | const int C=(8-x)*( y);\ | 120 | 123M | const int D=( x)*( y);\ | 121 | 123M | int i;\ | 122 | 123M | stride >>= sizeof(pixel)-1;\ | 123 | 123M | \ | 124 | 123M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ | 125 | 123M | \ | 126 | 123M | if(D){\ | 127 | 70.3M | for(i=0; i<h; i++){\ | 128 | 62.6M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ | 129 | 62.6M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ | 130 | 62.6M | OP(dst[2], (A*src[2] + B*src[3] + C*src[stride+2] + D*src[stride+3]));\ | 131 | 62.6M | OP(dst[3], (A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4]));\ | 132 | 62.6M | OP(dst[4], (A*src[4] + B*src[5] + C*src[stride+4] + D*src[stride+5]));\ | 133 | 62.6M | OP(dst[5], (A*src[5] + B*src[6] + C*src[stride+5] + D*src[stride+6]));\ | 134 | 62.6M | OP(dst[6], (A*src[6] + B*src[7] + C*src[stride+6] + D*src[stride+7]));\ | 135 | 62.6M | OP(dst[7], (A*src[7] + B*src[8] + C*src[stride+7] + D*src[stride+8]));\ | 136 | 62.6M | dst+= stride;\ | 137 | 62.6M | src+= stride;\ | 138 | 62.6M | }\ | 139 | 115M | } else if (B + C) {\ | 140 | 21.5M | const int E= B+C;\ | 141 | 21.5M | const ptrdiff_t step = C ? stride : 1;\ | 142 | 198M | for(i=0; i<h; i++){\ | 143 | 177M | OP(dst[0], (A*src[0] + E*src[step+0]));\ | 144 | 177M | OP(dst[1], (A*src[1] + E*src[step+1]));\ | 145 | 177M | OP(dst[2], (A*src[2] + E*src[step+2]));\ | 146 | 177M | OP(dst[3], (A*src[3] + E*src[step+3]));\ | 147 | 177M | OP(dst[4], (A*src[4] + E*src[step+4]));\ | 148 | 177M | OP(dst[5], (A*src[5] + E*src[step+5]));\ | 149 | 177M | OP(dst[6], (A*src[6] + E*src[step+6]));\ | 150 | 177M | OP(dst[7], (A*src[7] + E*src[step+7]));\ | 151 | 177M | dst+= stride;\ | 152 | 177M | src+= stride;\ | 153 | 177M | }\ | 154 | 94.2M | } else {\ | 155 | 965M | for ( i = 0; i < h; i++){\ | 156 | 870M | OP(dst[0], A * src[0]);\ | 157 | 870M | OP(dst[1], A * src[1]);\ | 158 | 870M | OP(dst[2], A * src[2]);\ | 159 | 870M | OP(dst[3], A * src[3]);\ | 160 | 870M | OP(dst[4], A * src[4]);\ | 161 | 870M | OP(dst[5], A * src[5]);\ | 162 | 870M | OP(dst[6], A * src[6]);\ | 163 | 870M | OP(dst[7], A * src[7]);\ | 164 | 870M | dst += stride;\ | 165 | 870M | src += stride;\ | 166 | 870M | }\ | 167 | 94.2M | }\ | 168 | 123M | } |
h264chroma.c:avg_h264_chroma_mc8_8_c Line | Count | Source | 113 | 10.3M | static void FUNCC(OPNAME ## h264_chroma_mc8)(uint8_t *_dst, const uint8_t *_src, ptrdiff_t stride, int h, int x, int y)\ | 114 | 10.3M | {\ | 115 | 10.3M | pixel *dst = (pixel*)_dst;\ | 116 | 10.3M | const pixel *src = (const pixel*)_src;\ | 117 | 10.3M | const int A=(8-x)*(8-y);\ | 118 | 10.3M | const int B=( x)*(8-y);\ | 119 | 10.3M | const int C=(8-x)*( y);\ | 120 | 10.3M | const int D=( x)*( y);\ | 121 | 10.3M | int i;\ | 122 | 10.3M | stride >>= sizeof(pixel)-1;\ | 123 | 10.3M | \ | 124 | 10.3M | av_assert2(x<8 && y<8 && x>=0 && y>=0);\ | 125 | 10.3M | \ | 126 | 10.3M | if(D){\ | 127 | 9.74M | for(i=0; i<h; i++){\ | 128 | 8.62M | OP(dst[0], (A*src[0] + B*src[1] + C*src[stride+0] + D*src[stride+1]));\ | 129 | 8.62M | OP(dst[1], (A*src[1] + B*src[2] + C*src[stride+1] + D*src[stride+2]));\ | 130 | 8.62M | OP(dst[2], (A*src[2] + B*src[3] + C*src[stride+2] + D*src[stride+3]));\ | 131 | 8.62M | OP(dst[3], (A*src[3] + B*src[4] + C*src[stride+3] + D*src[stride+4]));\ | 132 | 8.62M | OP(dst[4], (A*src[4] + B*src[5] + C*src[stride+4] + D*src[stride+5]));\ | 133 | 8.62M | OP(dst[5], (A*src[5] + B*src[6] + C*src[stride+5] + D*src[stride+6]));\ | 134 | 8.62M | OP(dst[6], (A*src[6] + B*src[7] + C*src[stride+6] + D*src[stride+7]));\ | 135 | 8.62M | OP(dst[7], (A*src[7] + B*src[8] + C*src[stride+7] + D*src[stride+8]));\ | 136 | 8.62M | dst+= stride;\ | 137 | 8.62M | src+= stride;\ | 138 | 8.62M | }\ | 139 | 9.24M | } else if (B + C) {\ | 140 | 1.43M | const int E= B+C;\ | 141 | 1.43M | const ptrdiff_t step = C ? stride : 1;\ | 142 | 12.6M | for(i=0; i<h; i++){\ | 143 | 11.2M | OP(dst[0], (A*src[0] + E*src[step+0]));\ | 144 | 11.2M | OP(dst[1], (A*src[1] + E*src[step+1]));\ | 145 | 11.2M | OP(dst[2], (A*src[2] + E*src[step+2]));\ | 146 | 11.2M | OP(dst[3], (A*src[3] + E*src[step+3]));\ | 147 | 11.2M | OP(dst[4], (A*src[4] + E*src[step+4]));\ | 148 | 11.2M | OP(dst[5], (A*src[5] + E*src[step+5]));\ | 149 | 11.2M | OP(dst[6], (A*src[6] + E*src[step+6]));\ | 150 | 11.2M | OP(dst[7], (A*src[7] + E*src[step+7]));\ | 151 | 11.2M | dst+= stride;\ | 152 | 11.2M | src+= stride;\ | 153 | 11.2M | }\ | 154 | 7.80M | } else {\ | 155 | 72.3M | for ( i = 0; i < h; i++){\ | 156 | 64.5M | OP(dst[0], A * src[0]);\ | 157 | 64.5M | OP(dst[1], A * src[1]);\ | 158 | 64.5M | OP(dst[2], A * src[2]);\ | 159 | 64.5M | OP(dst[3], A * src[3]);\ | 160 | 64.5M | OP(dst[4], A * src[4]);\ | 161 | 64.5M | OP(dst[5], A * src[5]);\ | 162 | 64.5M | OP(dst[6], A * src[6]);\ | 163 | 64.5M | OP(dst[7], A * src[7]);\ | 164 | 64.5M | dst += stride;\ | 165 | 64.5M | src += stride;\ | 166 | 64.5M | }\ | 167 | 7.80M | }\ | 168 | 10.3M | } |
|
169 | | |
170 | 2.62G | #define op_avg(a, b) a = (((a)+(((b) + 32)>>6)+1)>>1) |
171 | 19.8G | #define op_put(a, b) a = (((b) + 32)>>6) |
172 | | |
173 | 19.8G | H264_CHROMA_MC(put_ , op_put) |
174 | 2.62G | H264_CHROMA_MC(avg_ , op_avg) |
175 | | #undef op_avg |
176 | | #undef op_put |