Mercurial > libavcodec.hg
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);\ |