comparison dsputil.c @ 984:e162c09efbe7 libavcodec

qpel fix
author michaelni
date Thu, 09 Jan 2003 20:42:37 +0000
parents 13aec7e50c52
children ad44196ea483
comparison
equal deleted inserted replaced
983:ca2a303ea039 984:e162c09efbe7
799 dst+=dstStride;\ 799 dst+=dstStride;\
800 src+=srcStride;\ 800 src+=srcStride;\
801 }\ 801 }\
802 }\ 802 }\
803 \ 803 \
804 static void OPNAME ## mpeg4_qpel8_v_lowpass(UINT8 *dst, UINT8 *src, int dstStride, int srcStride, int w){\ 804 static void OPNAME ## mpeg4_qpel8_v_lowpass(UINT8 *dst, UINT8 *src, int dstStride, int srcStride){\
805 const int w=8;\
805 UINT8 *cm = cropTbl + MAX_NEG_CROP;\ 806 UINT8 *cm = cropTbl + MAX_NEG_CROP;\
806 int i;\ 807 int i;\
807 for(i=0; i<w; i++)\ 808 for(i=0; i<w; i++)\
808 {\ 809 {\
809 const int src0= src[0*srcStride];\ 810 const int src0= src[0*srcStride];\
921 \ 922 \
922 static void OPNAME ## qpel8_mc01_c(UINT8 *dst, UINT8 *src, int stride){\ 923 static void OPNAME ## qpel8_mc01_c(UINT8 *dst, UINT8 *src, int stride){\
923 UINT8 full[16*9];\ 924 UINT8 full[16*9];\
924 UINT8 half[64];\ 925 UINT8 half[64];\
925 copy_block9(full, src, 16, stride, 9);\ 926 copy_block9(full, src, 16, stride, 9);\
926 put ## RND ## mpeg4_qpel8_v_lowpass(half, full, 8, 16, 8);\ 927 put ## RND ## mpeg4_qpel8_v_lowpass(half, full, 8, 16);\
927 OPNAME ## pixels8_l2(dst, full, half, stride, 16, 8, 8);\ 928 OPNAME ## pixels8_l2(dst, full, half, stride, 16, 8, 8);\
928 }\ 929 }\
929 \ 930 \
930 static void OPNAME ## qpel8_mc02_c(UINT8 *dst, UINT8 *src, int stride){\ 931 static void OPNAME ## qpel8_mc02_c(UINT8 *dst, UINT8 *src, int stride){\
931 UINT8 full[16*9];\ 932 UINT8 full[16*9];\
932 copy_block9(full, src, 16, stride, 9);\ 933 copy_block9(full, src, 16, stride, 9);\
933 OPNAME ## mpeg4_qpel8_v_lowpass(dst, full, stride, 16, 8);\ 934 OPNAME ## mpeg4_qpel8_v_lowpass(dst, full, stride, 16);\
934 }\ 935 }\
935 \ 936 \
936 static void OPNAME ## qpel8_mc03_c(UINT8 *dst, UINT8 *src, int stride){\ 937 static void OPNAME ## qpel8_mc03_c(UINT8 *dst, UINT8 *src, int stride){\
937 UINT8 full[16*9];\ 938 UINT8 full[16*9];\
938 UINT8 half[64];\ 939 UINT8 half[64];\
939 copy_block9(full, src, 16, stride, 9);\ 940 copy_block9(full, src, 16, stride, 9);\
940 put ## RND ## mpeg4_qpel8_v_lowpass(half, full, 8, 16, 8);\ 941 put ## RND ## mpeg4_qpel8_v_lowpass(half, full, 8, 16);\
941 OPNAME ## pixels8_l2(dst, full+16, half, stride, 16, 8, 8);\ 942 OPNAME ## pixels8_l2(dst, full+16, half, stride, 16, 8, 8);\
942 }\ 943 }\
943 static void OPNAME ## qpel8_mc11_c(UINT8 *dst, UINT8 *src, int stride){\ 944 void ff_ ## OPNAME ## qpel8_mc11_old_c(UINT8 *dst, UINT8 *src, int stride){\
944 UINT8 full[16*9];\ 945 UINT8 full[16*9];\
945 UINT8 halfH[72];\ 946 UINT8 halfH[72];\
946 UINT8 halfV[64];\ 947 UINT8 halfV[64];\
947 UINT8 halfHV[64];\ 948 UINT8 halfHV[64];\
948 copy_block9(full, src, 16, stride, 9);\ 949 copy_block9(full, src, 16, stride, 9);\
949 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\ 950 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
950 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full, 8, 16, 8);\ 951 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full, 8, 16);\
951 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8, 8);\ 952 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
952 OPNAME ## pixels8_l4(dst, full, halfH, halfV, halfHV, stride, 16, 8, 8, 8, 8);\ 953 OPNAME ## pixels8_l4(dst, full, halfH, halfV, halfHV, stride, 16, 8, 8, 8, 8);\
953 }\ 954 }\
954 static void OPNAME ## qpel8_mc31_c(UINT8 *dst, UINT8 *src, int stride){\ 955 static void OPNAME ## qpel8_mc11_c(UINT8 *dst, UINT8 *src, int stride){\
956 UINT8 full[16*9];\
957 UINT8 halfH[72];\
958 UINT8 halfHV[64];\
959 copy_block9(full, src, 16, stride, 9);\
960 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
961 put ## RND ## pixels8_l2(halfH, halfH, full, 8, 8, 16, 9);\
962 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
963 OPNAME ## pixels8_l2(dst, halfH, halfHV, stride, 8, 8, 8);\
964 }\
965 void ff_ ## OPNAME ## qpel8_mc31_old_c(UINT8 *dst, UINT8 *src, int stride){\
955 UINT8 full[16*9];\ 966 UINT8 full[16*9];\
956 UINT8 halfH[72];\ 967 UINT8 halfH[72];\
957 UINT8 halfV[64];\ 968 UINT8 halfV[64];\
958 UINT8 halfHV[64];\ 969 UINT8 halfHV[64];\
959 copy_block9(full, src, 16, stride, 9);\ 970 copy_block9(full, src, 16, stride, 9);\
960 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\ 971 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
961 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full+1, 8, 16, 8);\ 972 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full+1, 8, 16);\
962 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8, 8);\ 973 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
963 OPNAME ## pixels8_l4(dst, full+1, halfH, halfV, halfHV, stride, 16, 8, 8, 8, 8);\ 974 OPNAME ## pixels8_l4(dst, full+1, halfH, halfV, halfHV, stride, 16, 8, 8, 8, 8);\
964 }\ 975 }\
965 static void OPNAME ## qpel8_mc13_c(UINT8 *dst, UINT8 *src, int stride){\ 976 static void OPNAME ## qpel8_mc31_c(UINT8 *dst, UINT8 *src, int stride){\
977 UINT8 full[16*9];\
978 UINT8 halfH[72];\
979 UINT8 halfHV[64];\
980 copy_block9(full, src, 16, stride, 9);\
981 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
982 put ## RND ## pixels8_l2(halfH, halfH, full+1, 8, 8, 16, 9);\
983 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
984 OPNAME ## pixels8_l2(dst, halfH, halfHV, stride, 8, 8, 8);\
985 }\
986 void ff_ ## OPNAME ## qpel8_mc13_old_c(UINT8 *dst, UINT8 *src, int stride){\
966 UINT8 full[16*9];\ 987 UINT8 full[16*9];\
967 UINT8 halfH[72];\ 988 UINT8 halfH[72];\
968 UINT8 halfV[64];\ 989 UINT8 halfV[64];\
969 UINT8 halfHV[64];\ 990 UINT8 halfHV[64];\
970 copy_block9(full, src, 16, stride, 9);\ 991 copy_block9(full, src, 16, stride, 9);\
971 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\ 992 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
972 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full, 8, 16, 8);\ 993 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full, 8, 16);\
973 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8, 8);\ 994 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
974 OPNAME ## pixels8_l4(dst, full+16, halfH+8, halfV, halfHV, stride, 16, 8, 8, 8, 8);\ 995 OPNAME ## pixels8_l4(dst, full+16, halfH+8, halfV, halfHV, stride, 16, 8, 8, 8, 8);\
975 }\ 996 }\
976 static void OPNAME ## qpel8_mc33_c(UINT8 *dst, UINT8 *src, int stride){\ 997 static void OPNAME ## qpel8_mc13_c(UINT8 *dst, UINT8 *src, int stride){\
998 UINT8 full[16*9];\
999 UINT8 halfH[72];\
1000 UINT8 halfHV[64];\
1001 copy_block9(full, src, 16, stride, 9);\
1002 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
1003 put ## RND ## pixels8_l2(halfH, halfH, full, 8, 8, 16, 9);\
1004 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
1005 OPNAME ## pixels8_l2(dst, halfH+8, halfHV, stride, 8, 8, 8);\
1006 }\
1007 void ff_ ## OPNAME ## qpel8_mc33_old_c(UINT8 *dst, UINT8 *src, int stride){\
977 UINT8 full[16*9];\ 1008 UINT8 full[16*9];\
978 UINT8 halfH[72];\ 1009 UINT8 halfH[72];\
979 UINT8 halfV[64];\ 1010 UINT8 halfV[64];\
980 UINT8 halfHV[64];\ 1011 UINT8 halfHV[64];\
981 copy_block9(full, src, 16, stride, 9);\ 1012 copy_block9(full, src, 16, stride, 9);\
982 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full , 8, 16, 9);\ 1013 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full , 8, 16, 9);\
983 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full+1, 8, 16, 8);\ 1014 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full+1, 8, 16);\
984 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8, 8);\ 1015 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
985 OPNAME ## pixels8_l4(dst, full+17, halfH+8, halfV, halfHV, stride, 16, 8, 8, 8, 8);\ 1016 OPNAME ## pixels8_l4(dst, full+17, halfH+8, halfV, halfHV, stride, 16, 8, 8, 8, 8);\
1017 }\
1018 static void OPNAME ## qpel8_mc33_c(UINT8 *dst, UINT8 *src, int stride){\
1019 UINT8 full[16*9];\
1020 UINT8 halfH[72];\
1021 UINT8 halfHV[64];\
1022 copy_block9(full, src, 16, stride, 9);\
1023 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
1024 put ## RND ## pixels8_l2(halfH, halfH, full+1, 8, 8, 16, 9);\
1025 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
1026 OPNAME ## pixels8_l2(dst, halfH+8, halfHV, stride, 8, 8, 8);\
986 }\ 1027 }\
987 static void OPNAME ## qpel8_mc21_c(UINT8 *dst, UINT8 *src, int stride){\ 1028 static void OPNAME ## qpel8_mc21_c(UINT8 *dst, UINT8 *src, int stride){\
988 UINT8 halfH[72];\ 1029 UINT8 halfH[72];\
989 UINT8 halfHV[64];\ 1030 UINT8 halfHV[64];\
990 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, src, 8, stride, 9);\ 1031 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, src, 8, stride, 9);\
991 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8, 8);\ 1032 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
992 OPNAME ## pixels8_l2(dst, halfH, halfHV, stride, 8, 8, 8);\ 1033 OPNAME ## pixels8_l2(dst, halfH, halfHV, stride, 8, 8, 8);\
993 }\ 1034 }\
994 static void OPNAME ## qpel8_mc23_c(UINT8 *dst, UINT8 *src, int stride){\ 1035 static void OPNAME ## qpel8_mc23_c(UINT8 *dst, UINT8 *src, int stride){\
995 UINT8 halfH[72];\ 1036 UINT8 halfH[72];\
996 UINT8 halfHV[64];\ 1037 UINT8 halfHV[64];\
997 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, src, 8, stride, 9);\ 1038 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, src, 8, stride, 9);\
998 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8, 8);\ 1039 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
999 OPNAME ## pixels8_l2(dst, halfH+8, halfHV, stride, 8, 8, 8);\ 1040 OPNAME ## pixels8_l2(dst, halfH+8, halfHV, stride, 8, 8, 8);\
1000 }\ 1041 }\
1001 static void OPNAME ## qpel8_mc12_c(UINT8 *dst, UINT8 *src, int stride){\ 1042 void ff_ ## OPNAME ## qpel8_mc12_old_c(UINT8 *dst, UINT8 *src, int stride){\
1002 UINT8 full[16*9];\ 1043 UINT8 full[16*9];\
1003 UINT8 halfH[72];\ 1044 UINT8 halfH[72];\
1004 UINT8 halfV[64];\ 1045 UINT8 halfV[64];\
1005 UINT8 halfHV[64];\ 1046 UINT8 halfHV[64];\
1006 copy_block9(full, src, 16, stride, 9);\ 1047 copy_block9(full, src, 16, stride, 9);\
1007 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\ 1048 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
1008 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full, 8, 16, 8);\ 1049 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full, 8, 16);\
1009 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8, 8);\ 1050 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
1010 OPNAME ## pixels8_l2(dst, halfV, halfHV, stride, 8, 8, 8);\ 1051 OPNAME ## pixels8_l2(dst, halfV, halfHV, stride, 8, 8, 8);\
1011 }\ 1052 }\
1012 static void OPNAME ## qpel8_mc32_c(UINT8 *dst, UINT8 *src, int stride){\ 1053 static void OPNAME ## qpel8_mc12_c(UINT8 *dst, UINT8 *src, int stride){\
1054 UINT8 full[16*9];\
1055 UINT8 halfH[72];\
1056 copy_block9(full, src, 16, stride, 9);\
1057 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
1058 put ## RND ## pixels8_l2(halfH, halfH, full, 8, 8, 16, 9);\
1059 OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8);\
1060 }\
1061 void ff_ ## OPNAME ## qpel8_mc32_old_c(UINT8 *dst, UINT8 *src, int stride){\
1013 UINT8 full[16*9];\ 1062 UINT8 full[16*9];\
1014 UINT8 halfH[72];\ 1063 UINT8 halfH[72];\
1015 UINT8 halfV[64];\ 1064 UINT8 halfV[64];\
1016 UINT8 halfHV[64];\ 1065 UINT8 halfHV[64];\
1017 copy_block9(full, src, 16, stride, 9);\ 1066 copy_block9(full, src, 16, stride, 9);\
1018 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\ 1067 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
1019 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full+1, 8, 16, 8);\ 1068 put ## RND ## mpeg4_qpel8_v_lowpass(halfV, full+1, 8, 16);\
1020 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8, 8);\ 1069 put ## RND ## mpeg4_qpel8_v_lowpass(halfHV, halfH, 8, 8);\
1021 OPNAME ## pixels8_l2(dst, halfV, halfHV, stride, 8, 8, 8);\ 1070 OPNAME ## pixels8_l2(dst, halfV, halfHV, stride, 8, 8, 8);\
1071 }\
1072 static void OPNAME ## qpel8_mc32_c(UINT8 *dst, UINT8 *src, int stride){\
1073 UINT8 full[16*9];\
1074 UINT8 halfH[72];\
1075 copy_block9(full, src, 16, stride, 9);\
1076 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, full, 8, 16, 9);\
1077 put ## RND ## pixels8_l2(halfH, halfH, full+1, 8, 8, 16, 9);\
1078 OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8);\
1022 }\ 1079 }\
1023 static void OPNAME ## qpel8_mc22_c(UINT8 *dst, UINT8 *src, int stride){\ 1080 static void OPNAME ## qpel8_mc22_c(UINT8 *dst, UINT8 *src, int stride){\
1024 UINT8 halfH[72];\ 1081 UINT8 halfH[72];\
1025 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, src, 8, stride, 9);\ 1082 put ## RND ## mpeg4_qpel8_h_lowpass(halfH, src, 8, stride, 9);\
1026 OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8, 8);\ 1083 OPNAME ## mpeg4_qpel8_v_lowpass(dst, halfH, stride, 8);\
1027 }\ 1084 }\
1028 static void OPNAME ## qpel16_mc00_c (UINT8 *dst, UINT8 *src, int stride){\ 1085 static void OPNAME ## qpel16_mc00_c (UINT8 *dst, UINT8 *src, int stride){\
1029 OPNAME ## pixels16_c(dst, src, stride, 16);\ 1086 OPNAME ## pixels16_c(dst, src, stride, 16);\
1030 }\ 1087 }\
1031 \ 1088 \
1064 UINT8 half[256];\ 1121 UINT8 half[256];\
1065 copy_block17(full, src, 24, stride, 17);\ 1122 copy_block17(full, src, 24, stride, 17);\
1066 put ## RND ## mpeg4_qpel16_v_lowpass(half, full, 16, 24);\ 1123 put ## RND ## mpeg4_qpel16_v_lowpass(half, full, 16, 24);\
1067 OPNAME ## pixels16_l2(dst, full+24, half, stride, 24, 16, 16);\ 1124 OPNAME ## pixels16_l2(dst, full+24, half, stride, 24, 16, 16);\
1068 }\ 1125 }\
1069 static void OPNAME ## qpel16_mc11_c(UINT8 *dst, UINT8 *src, int stride){\ 1126 void ff_ ## OPNAME ## qpel16_mc11_old_c(UINT8 *dst, UINT8 *src, int stride){\
1070 UINT8 full[24*17];\ 1127 UINT8 full[24*17];\
1071 UINT8 halfH[272];\ 1128 UINT8 halfH[272];\
1072 UINT8 halfV[256];\ 1129 UINT8 halfV[256];\
1073 UINT8 halfHV[256];\ 1130 UINT8 halfHV[256];\
1074 copy_block17(full, src, 24, stride, 17);\ 1131 copy_block17(full, src, 24, stride, 17);\
1075 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\ 1132 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
1076 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full, 16, 24);\ 1133 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full, 16, 24);\
1077 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\ 1134 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
1078 OPNAME ## pixels16_l4(dst, full, halfH, halfV, halfHV, stride, 24, 16, 16, 16, 16);\ 1135 OPNAME ## pixels16_l4(dst, full, halfH, halfV, halfHV, stride, 24, 16, 16, 16, 16);\
1079 }\ 1136 }\
1080 static void OPNAME ## qpel16_mc31_c(UINT8 *dst, UINT8 *src, int stride){\ 1137 static void OPNAME ## qpel16_mc11_c(UINT8 *dst, UINT8 *src, int stride){\
1138 UINT8 full[24*17];\
1139 UINT8 halfH[272];\
1140 UINT8 halfHV[256];\
1141 copy_block17(full, src, 24, stride, 17);\
1142 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
1143 put ## RND ## pixels16_l2(halfH, halfH, full, 16, 16, 24, 17);\
1144 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
1145 OPNAME ## pixels16_l2(dst, halfH, halfHV, stride, 16, 16, 16);\
1146 }\
1147 void ff_ ## OPNAME ## qpel16_mc31_old_c(UINT8 *dst, UINT8 *src, int stride){\
1081 UINT8 full[24*17];\ 1148 UINT8 full[24*17];\
1082 UINT8 halfH[272];\ 1149 UINT8 halfH[272];\
1083 UINT8 halfV[256];\ 1150 UINT8 halfV[256];\
1084 UINT8 halfHV[256];\ 1151 UINT8 halfHV[256];\
1085 copy_block17(full, src, 24, stride, 17);\ 1152 copy_block17(full, src, 24, stride, 17);\
1086 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\ 1153 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
1087 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full+1, 16, 24);\ 1154 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full+1, 16, 24);\
1088 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\ 1155 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
1089 OPNAME ## pixels16_l4(dst, full+1, halfH, halfV, halfHV, stride, 24, 16, 16, 16, 16);\ 1156 OPNAME ## pixels16_l4(dst, full+1, halfH, halfV, halfHV, stride, 24, 16, 16, 16, 16);\
1090 }\ 1157 }\
1091 static void OPNAME ## qpel16_mc13_c(UINT8 *dst, UINT8 *src, int stride){\ 1158 static void OPNAME ## qpel16_mc31_c(UINT8 *dst, UINT8 *src, int stride){\
1159 UINT8 full[24*17];\
1160 UINT8 halfH[272];\
1161 UINT8 halfHV[256];\
1162 copy_block17(full, src, 24, stride, 17);\
1163 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
1164 put ## RND ## pixels16_l2(halfH, halfH, full+1, 16, 16, 24, 17);\
1165 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
1166 OPNAME ## pixels16_l2(dst, halfH, halfHV, stride, 16, 16, 16);\
1167 }\
1168 void ff_ ## OPNAME ## qpel16_mc13_old_c(UINT8 *dst, UINT8 *src, int stride){\
1092 UINT8 full[24*17];\ 1169 UINT8 full[24*17];\
1093 UINT8 halfH[272];\ 1170 UINT8 halfH[272];\
1094 UINT8 halfV[256];\ 1171 UINT8 halfV[256];\
1095 UINT8 halfHV[256];\ 1172 UINT8 halfHV[256];\
1096 copy_block17(full, src, 24, stride, 17);\ 1173 copy_block17(full, src, 24, stride, 17);\
1097 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\ 1174 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
1098 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full, 16, 24);\ 1175 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full, 16, 24);\
1099 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\ 1176 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
1100 OPNAME ## pixels16_l4(dst, full+24, halfH+16, halfV, halfHV, stride, 24, 16, 16, 16, 16);\ 1177 OPNAME ## pixels16_l4(dst, full+24, halfH+16, halfV, halfHV, stride, 24, 16, 16, 16, 16);\
1101 }\ 1178 }\
1102 static void OPNAME ## qpel16_mc33_c(UINT8 *dst, UINT8 *src, int stride){\ 1179 static void OPNAME ## qpel16_mc13_c(UINT8 *dst, UINT8 *src, int stride){\
1180 UINT8 full[24*17];\
1181 UINT8 halfH[272];\
1182 UINT8 halfHV[256];\
1183 copy_block17(full, src, 24, stride, 17);\
1184 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
1185 put ## RND ## pixels16_l2(halfH, halfH, full, 16, 16, 24, 17);\
1186 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
1187 OPNAME ## pixels16_l2(dst, halfH+16, halfHV, stride, 16, 16, 16);\
1188 }\
1189 void ff_ ## OPNAME ## qpel16_mc33_old_c(UINT8 *dst, UINT8 *src, int stride){\
1103 UINT8 full[24*17];\ 1190 UINT8 full[24*17];\
1104 UINT8 halfH[272];\ 1191 UINT8 halfH[272];\
1105 UINT8 halfV[256];\ 1192 UINT8 halfV[256];\
1106 UINT8 halfHV[256];\ 1193 UINT8 halfHV[256];\
1107 copy_block17(full, src, 24, stride, 17);\ 1194 copy_block17(full, src, 24, stride, 17);\
1108 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full , 16, 24, 17);\ 1195 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full , 16, 24, 17);\
1109 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full+1, 16, 24);\ 1196 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full+1, 16, 24);\
1110 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\ 1197 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
1111 OPNAME ## pixels16_l4(dst, full+25, halfH+16, halfV, halfHV, stride, 24, 16, 16, 16, 16);\ 1198 OPNAME ## pixels16_l4(dst, full+25, halfH+16, halfV, halfHV, stride, 24, 16, 16, 16, 16);\
1112 }\ 1199 }\
1200 static void OPNAME ## qpel16_mc33_c(UINT8 *dst, UINT8 *src, int stride){\
1201 UINT8 full[24*17];\
1202 UINT8 halfH[272];\
1203 UINT8 halfHV[256];\
1204 copy_block17(full, src, 24, stride, 17);\
1205 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
1206 put ## RND ## pixels16_l2(halfH, halfH, full+1, 16, 16, 24, 17);\
1207 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
1208 OPNAME ## pixels16_l2(dst, halfH+16, halfHV, stride, 16, 16, 16);\
1209 }\
1113 static void OPNAME ## qpel16_mc21_c(UINT8 *dst, UINT8 *src, int stride){\ 1210 static void OPNAME ## qpel16_mc21_c(UINT8 *dst, UINT8 *src, int stride){\
1114 UINT8 halfH[272];\ 1211 UINT8 halfH[272];\
1115 UINT8 halfHV[256];\ 1212 UINT8 halfHV[256];\
1116 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, src, 16, stride, 17);\ 1213 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, src, 16, stride, 17);\
1117 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\ 1214 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
1122 UINT8 halfHV[256];\ 1219 UINT8 halfHV[256];\
1123 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, src, 16, stride, 17);\ 1220 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, src, 16, stride, 17);\
1124 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\ 1221 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
1125 OPNAME ## pixels16_l2(dst, halfH+16, halfHV, stride, 16, 16, 16);\ 1222 OPNAME ## pixels16_l2(dst, halfH+16, halfHV, stride, 16, 16, 16);\
1126 }\ 1223 }\
1127 static void OPNAME ## qpel16_mc12_c(UINT8 *dst, UINT8 *src, int stride){\ 1224 void ff_ ## OPNAME ## qpel16_mc12_old_c(UINT8 *dst, UINT8 *src, int stride){\
1128 UINT8 full[24*17];\ 1225 UINT8 full[24*17];\
1129 UINT8 halfH[272];\ 1226 UINT8 halfH[272];\
1130 UINT8 halfV[256];\ 1227 UINT8 halfV[256];\
1131 UINT8 halfHV[256];\ 1228 UINT8 halfHV[256];\
1132 copy_block17(full, src, 24, stride, 17);\ 1229 copy_block17(full, src, 24, stride, 17);\
1133 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\ 1230 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
1134 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full, 16, 24);\ 1231 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full, 16, 24);\
1135 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\ 1232 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
1136 OPNAME ## pixels16_l2(dst, halfV, halfHV, stride, 16, 16, 16);\ 1233 OPNAME ## pixels16_l2(dst, halfV, halfHV, stride, 16, 16, 16);\
1137 }\ 1234 }\
1138 static void OPNAME ## qpel16_mc32_c(UINT8 *dst, UINT8 *src, int stride){\ 1235 static void OPNAME ## qpel16_mc12_c(UINT8 *dst, UINT8 *src, int stride){\
1236 UINT8 full[24*17];\
1237 UINT8 halfH[272];\
1238 copy_block17(full, src, 24, stride, 17);\
1239 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
1240 put ## RND ## pixels16_l2(halfH, halfH, full, 16, 16, 24, 17);\
1241 OPNAME ## mpeg4_qpel16_v_lowpass(dst, halfH, stride, 16);\
1242 }\
1243 void ff_ ## OPNAME ## qpel16_mc32_old_c(UINT8 *dst, UINT8 *src, int stride){\
1139 UINT8 full[24*17];\ 1244 UINT8 full[24*17];\
1140 UINT8 halfH[272];\ 1245 UINT8 halfH[272];\
1141 UINT8 halfV[256];\ 1246 UINT8 halfV[256];\
1142 UINT8 halfHV[256];\ 1247 UINT8 halfHV[256];\
1143 copy_block17(full, src, 24, stride, 17);\ 1248 copy_block17(full, src, 24, stride, 17);\
1144 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\ 1249 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
1145 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full+1, 16, 24);\ 1250 put ## RND ## mpeg4_qpel16_v_lowpass(halfV, full+1, 16, 24);\
1146 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\ 1251 put ## RND ## mpeg4_qpel16_v_lowpass(halfHV, halfH, 16, 16);\
1147 OPNAME ## pixels16_l2(dst, halfV, halfHV, stride, 16, 16, 16);\ 1252 OPNAME ## pixels16_l2(dst, halfV, halfHV, stride, 16, 16, 16);\
1253 }\
1254 static void OPNAME ## qpel16_mc32_c(UINT8 *dst, UINT8 *src, int stride){\
1255 UINT8 full[24*17];\
1256 UINT8 halfH[272];\
1257 copy_block17(full, src, 24, stride, 17);\
1258 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, full, 16, 24, 17);\
1259 put ## RND ## pixels16_l2(halfH, halfH, full+1, 16, 16, 24, 17);\
1260 OPNAME ## mpeg4_qpel16_v_lowpass(dst, halfH, stride, 16);\
1148 }\ 1261 }\
1149 static void OPNAME ## qpel16_mc22_c(UINT8 *dst, UINT8 *src, int stride){\ 1262 static void OPNAME ## qpel16_mc22_c(UINT8 *dst, UINT8 *src, int stride){\
1150 UINT8 halfH[272];\ 1263 UINT8 halfH[272];\
1151 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, src, 16, stride, 17);\ 1264 put ## RND ## mpeg4_qpel16_h_lowpass(halfH, src, 16, stride, 17);\
1152 OPNAME ## mpeg4_qpel16_v_lowpass(dst, halfH, stride, 16);\ 1265 OPNAME ## mpeg4_qpel16_v_lowpass(dst, halfH, stride, 16);\