瀏覽代碼

try to optimize copyMacroblock by moving less data around

Maik Merten 12 年之前
父節點
當前提交
ae3cd4c81d
共有 1 個文件被更改,包括 50 次插入25 次删除
  1. 50 25
      jsmpg.js

+ 50 - 25
jsmpg.js 查看文件

941
 			while( dest < last ) {
941
 			while( dest < last ) {
942
 				y21 = sY[src]; y22 = sY[src+width]; src++;
942
 				y21 = sY[src]; y22 = sY[src+width]; src++;
943
 				for( var x = 0; x < 4; x++ ) {
943
 				for( var x = 0; x < 4; x++ ) {
944
-					y11 = y21; y12 = y22; y21 = sY[src]; y22 = sY[src+width]; src++;
944
+					//y11 = y21; y12 = y22; y21 = sY[src]; y22 = sY[src+width]; src++;
945
+					y11 = sY[src]; y12 = sY[src+width]; src++;
945
 					y = (((y11 + y21 + y12 + y22 + 2) >> 2) & 0xff);
946
 					y = (((y11 + y21 + y12 + y22 + 2) >> 2) & 0xff);
946
 
947
 
947
-					y11 = y21; y12 = y22; y21 = sY[src]; y22 = sY[src+width]; src++;
948
+					//y11 = y21; y12 = y22; y21 = sY[src]; y22 = sY[src+width]; src++;
949
+					y21 = sY[src]; y22 = sY[src+width]; src++;
948
 					y |= (((y11 + y21 + y12 + y22 + 2) << 6) & 0xff00);
950
 					y |= (((y11 + y21 + y12 + y22 + 2) << 6) & 0xff00);
949
 					
951
 					
950
-					y11 = y21; y12 = y22; y21 = sY[src]; y22 = sY[src+width]; src++;
952
+					//y11 = y21; y12 = y22; y21 = sY[src]; y22 = sY[src+width]; src++;
953
+					y11 = sY[src]; y12 = sY[src+width]; src++;
951
 					y |= (((y11 + y21 + y12 + y22 + 2) << 14) & 0xff0000);
954
 					y |= (((y11 + y21 + y12 + y22 + 2) << 14) & 0xff0000);
952
 
955
 
953
-					y11 = y21; y12 = y22; y21 = sY[src]; y22 = sY[src+width]; src++;
956
+					//y11 = y21; y12 = y22; y21 = sY[src]; y22 = sY[src+width]; src++;
957
+					y21 = sY[src]; y22 = sY[src+width]; src++;
954
 					y |= (((y11 + y21 + y12 + y22 + 2) << 22) & 0xff000000);
958
 					y |= (((y11 + y21 + y12 + y22 + 2) << 22) & 0xff000000);
955
 
959
 
956
 					dY[dest++] = y;
960
 					dY[dest++] = y;
960
 		}
964
 		}
961
 		else {
965
 		else {
962
 			while( dest < last ) {
966
 			while( dest < last ) {
963
-				y21 = sY[src]; src++;
967
+				//y21 = sY[src]; src++;
968
+				y11 = sY[src++];
964
 				for( var x = 0; x < 4; x++ ) {
969
 				for( var x = 0; x < 4; x++ ) {
965
-					y11 = y21; y21 = sY[src]; src++;
970
+					//y11 = y21; y21 = sY[src]; src++;
971
+					y21 = sY[src++];
966
 					y = (((y11 + y21 + 1) >> 1) & 0xff);
972
 					y = (((y11 + y21 + 1) >> 1) & 0xff);
967
 					
973
 					
968
-					y11 = y21; y21 = sY[src]; src++;
974
+					//y11 = y21; y21 = sY[src]; src++;
975
+					y11 = sY[src++];
969
 					y |= (((y11 + y21 + 1) << 7) & 0xff00);
976
 					y |= (((y11 + y21 + 1) << 7) & 0xff00);
970
 					
977
 					
971
-					y11 = y21; y21 = sY[src]; src++;
978
+					//y11 = y21; y21 = sY[src]; src++;
979
+					y21 = sY[src++];
972
 					y |= (((y11 + y21 + 1) << 15) & 0xff0000);
980
 					y |= (((y11 + y21 + 1) << 15) & 0xff0000);
973
 					
981
 					
974
-					y11 = y21; y21 = sY[src]; src++;
982
+					//y11 = y21; y21 = sY[src]; src++;
983
+					y11 = sY[src++];
975
 					y |= (((y11 + y21 + 1) << 23) & 0xff000000);
984
 					y |= (((y11 + y21 + 1) << 23) & 0xff000000);
976
 
985
 
977
 					dY[dest++] = y;
986
 					dY[dest++] = y;
1038
 				cb21 = sCb[src]; cb22 = sCb[src+width];
1047
 				cb21 = sCb[src]; cb22 = sCb[src+width];
1039
 				src++;
1048
 				src++;
1040
 				for( var x = 0; x < 2; x++ ) {
1049
 				for( var x = 0; x < 2; x++ ) {
1041
-					cr11 = cr21; cr12 = cr22; cr21 = sCr[src]; cr22 = sCr[src+width];
1042
-					cb11 = cb21; cb12 = cb22; cb21 = sCb[src]; cb22 = sCb[src+width]; src++;
1050
+					//cr11 = cr21; cr12 = cr22; cr21 = sCr[src]; cr22 = sCr[src+width];
1051
+					cr11 = sCr[src]; cr12 = sCr[src+width];
1052
+					//cb11 = cb21; cb12 = cb22; cb21 = sCb[src]; cb22 = sCb[src+width]; src++;
1053
+					cb11 = sCb[src]; cb12 = sCb[src+width]; src++;
1043
 					cr = (((cr11 + cr21 + cr12 + cr22 + 2) >> 2) & 0xff);
1054
 					cr = (((cr11 + cr21 + cr12 + cr22 + 2) >> 2) & 0xff);
1044
 					cb = (((cb11 + cb21 + cb12 + cb22 + 2) >> 2) & 0xff);
1055
 					cb = (((cb11 + cb21 + cb12 + cb22 + 2) >> 2) & 0xff);
1045
 
1056
 
1046
-					cr11 = cr21; cr12 = cr22; cr21 = sCr[src]; cr22 = sCr[src+width];
1047
-					cb11 = cb21; cb12 = cb22; cb21 = sCb[src]; cb22 = sCb[src+width]; src++;
1057
+					//cr11 = cr21; cr12 = cr22; cr21 = sCr[src]; cr22 = sCr[src+width];
1058
+					cr21 = sCr[src]; cr22 = sCr[src+width];
1059
+					//cb11 = cb21; cb12 = cb22; cb21 = sCb[src]; cb22 = sCb[src+width]; src++;
1060
+					cb21 = sCb[src]; cb22 = sCb[src+width]; src++;
1048
 					cr |= (((cr11 + cr21 + cr12 + cr22 + 2) << 6) & 0xff00);
1061
 					cr |= (((cr11 + cr21 + cr12 + cr22 + 2) << 6) & 0xff00);
1049
 					cb |= (((cb11 + cb21 + cb12 + cb22 + 2) << 6) & 0xff00);
1062
 					cb |= (((cb11 + cb21 + cb12 + cb22 + 2) << 6) & 0xff00);
1050
 
1063
 
1051
-					cr11 = cr21; cr12 = cr22; cr21 = sCr[src]; cr22 = sCr[src+width];
1052
-					cb11 = cb21; cb12 = cb22; cb21 = sCb[src]; cb22 = sCb[src+width]; src++;
1064
+					//cr11 = cr21; cr12 = cr22; cr21 = sCr[src]; cr22 = sCr[src+width];
1065
+					cr11 = sCr[src]; cr12 = sCr[src+width];
1066
+					//cb11 = cb21; cb12 = cb22; cb21 = sCb[src]; cb22 = sCb[src+width]; src++;
1067
+					cb11 = sCb[src]; cb12 = sCb[src+width]; src++;
1053
 					cr |= (((cr11 + cr21 + cr12 + cr22 + 2) << 14) & 0xff0000);
1068
 					cr |= (((cr11 + cr21 + cr12 + cr22 + 2) << 14) & 0xff0000);
1054
 					cb |= (((cb11 + cb21 + cb12 + cb22 + 2) << 14) & 0xff0000);
1069
 					cb |= (((cb11 + cb21 + cb12 + cb22 + 2) << 14) & 0xff0000);
1055
 
1070
 
1056
-					cr11 = cr21; cr12 = cr22; cr21 = sCr[src]; cr22 = sCr[src+width];
1057
-					cb11 = cb21; cb12 = cb22; cb21 = sCb[src]; cb22 = sCb[src+width]; src++;
1071
+					//cr11 = cr21; cr12 = cr22; cr21 = sCr[src]; cr22 = sCr[src+width];
1072
+					cr21 = sCr[src]; cr22 = sCr[src+width];
1073
+					//cb11 = cb21; cb12 = cb22; cb21 = sCb[src]; cb22 = sCb[src+width]; src++;
1074
+					cb21 = sCb[src]; cb22 = sCb[src+width]; src++;
1058
 					cr |= (((cr11 + cr21 + cr12 + cr22 + 2) << 22) & 0xff000000);
1075
 					cr |= (((cr11 + cr21 + cr12 + cr22 + 2) << 22) & 0xff000000);
1059
 					cb |= (((cb11 + cb21 + cb12 + cb22 + 2) << 22) & 0xff000000);
1076
 					cb |= (((cb11 + cb21 + cb12 + cb22 + 2) << 22) & 0xff000000);
1060
 
1077
 
1071
 				cb21 = sCb[src];
1088
 				cb21 = sCb[src];
1072
 				src++;
1089
 				src++;
1073
 				for( var x = 0; x < 2; x++ ) {
1090
 				for( var x = 0; x < 2; x++ ) {
1074
-					cr11 = cr21; cr21 = sCr[src];
1075
-					cb11 = cb21; cb21 = sCb[src]; src++;
1091
+					//cr11 = cr21; cr21 = sCr[src];
1092
+					cr11 = sCr[src];
1093
+					//cb11 = cb21; cb21 = sCb[src]; src++;
1094
+					cb11 = sCb[src++];
1076
 					cr = (((cr11 + cr21 + 1) >> 1) & 0xff);
1095
 					cr = (((cr11 + cr21 + 1) >> 1) & 0xff);
1077
 					cb = (((cb11 + cb21 + 1) >> 1) & 0xff);
1096
 					cb = (((cb11 + cb21 + 1) >> 1) & 0xff);
1078
 
1097
 
1079
-					cr11 = cr21; cr21 = sCr[src];
1080
-					cb11 = cb21; cb21 = sCb[src]; src++;
1098
+					//cr11 = cr21; cr21 = sCr[src];
1099
+					cr21 = sCr[src];
1100
+					//cb11 = cb21; cb21 = sCb[src]; src++;
1101
+					cb21 = sCb[src++];
1081
 					cr |= (((cr11 + cr21 + 1) << 7) & 0xff00);
1102
 					cr |= (((cr11 + cr21 + 1) << 7) & 0xff00);
1082
 					cb |= (((cb11 + cb21 + 1) << 7) & 0xff00);
1103
 					cb |= (((cb11 + cb21 + 1) << 7) & 0xff00);
1083
 
1104
 
1084
-					cr11 = cr21; cr21 = sCr[src];
1085
-					cb11 = cb21; cb21 = sCb[src]; src++;
1105
+					//cr11 = cr21; cr21 = sCr[src];
1106
+					cr11 = sCr[src];
1107
+					//cb11 = cb21; cb21 = sCb[src]; src++;
1108
+					cb11 = sCb[src++];
1086
 					cr |= (((cr11 + cr21 + 1) << 15) & 0xff0000);
1109
 					cr |= (((cr11 + cr21 + 1) << 15) & 0xff0000);
1087
 					cb |= (((cb11 + cb21 + 1) << 15) & 0xff0000);
1110
 					cb |= (((cb11 + cb21 + 1) << 15) & 0xff0000);
1088
 
1111
 
1089
-					cr11 = cr21; cr21 = sCr[src];
1090
-					cb11 = cb21; cb21 = sCb[src]; src++;
1112
+					//cr11 = cr21; cr21 = sCr[src];
1113
+					cr21 = sCr[src];
1114
+					//cb11 = cb21; cb21 = sCb[src]; src++;
1115
+					cb21 = sCb[src++];
1091
 					cr |= (((cr11 + cr21 + 1) << 23) & 0xff000000);
1116
 					cr |= (((cr11 + cr21 + 1) << 23) & 0xff000000);
1092
 					cb |= (((cb11 + cb21 + 1) << 23) & 0xff000000);
1117
 					cb |= (((cb11 + cb21 + 1) << 23) & 0xff000000);
1093
 
1118