OSDN Git Service

[更新]NyARToolkit-trunk
authornyatla <nyatla@7cac0a50-4618-4814-88d0-24b83990f816>
Mon, 15 Sep 2008 01:47:39 +0000 (01:47 +0000)
committernyatla <nyatla@7cac0a50-4618-4814-88d0-24b83990f816>
Mon, 15 Sep 2008 01:47:39 +0000 (01:47 +0000)
NyARRasterFilter_ARToolkitThreshold の高速化忘れ修正

git-svn-id: http://svn.sourceforge.jp/svnroot/nyartoolkit/NyARToolkit@163 7cac0a50-4618-4814-88d0-24b83990f816

trunk/src/jp/nyatla/nyartoolkit/core/rasterfilter/rgb2bin/NyARRasterFilter_ARToolkitThreshold.java

index 1826a55..fdfdc59 100644 (file)
@@ -92,36 +92,37 @@ public class NyARRasterFilter_ARToolkitThreshold implements INyARRasterFilter_Rg
                int x;          \r
                for (int y =i_size.h-1; y>=0 ; y--){\r
                        //端数分\r
+                       final int[] row_ptr=i_out[y];\r
                        for (x = size_w-1;x>=x_mod_end;x--) {\r
                                w= ((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x]=w<=th?0:1;\r
+                               row_ptr[x]=w<=th?0:1;\r
                                bp -= 3;\r
                        }\r
                        //タイリング               \r
                        for (;x>=0;x-=8) {\r
                                w=((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x]=w<=th?0:1;\r
+                               row_ptr[x]=w<=th?0:1;\r
                                bp -= 3;\r
                                w=((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-1]=w<=th?0:1;\r
+                               row_ptr[x-1]=w<=th?0:1;\r
                                bp -= 3;\r
                                w=((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-2]=w<=th?0:1;\r
+                               row_ptr[x-2]=w<=th?0:1;\r
                                bp -= 3;\r
                                w=((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-3]=w<=th?0:1;\r
+                               row_ptr[x-3]=w<=th?0:1;\r
                                bp -= 3;\r
                                w=((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-4]=w<=th?0:1;\r
+                               row_ptr[x-4]=w<=th?0:1;\r
                                bp -= 3;\r
                                w=((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-5]=w<=th?0:1;\r
+                               row_ptr[x-5]=w<=th?0:1;\r
                                bp -= 3;\r
                                w=((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-6]=w<=th?0:1;\r
+                               row_ptr[x-6]=w<=th?0:1;\r
                                bp -= 3;\r
                                w=((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-7]=w<=th?0:1;\r
+                               row_ptr[x-7]=w<=th?0:1;\r
                                bp -= 3;\r
                        }\r
                }\r
@@ -136,37 +137,39 @@ public class NyARRasterFilter_ARToolkitThreshold implements INyARRasterFilter_Rg
                int w;\r
                int x;\r
                for (int y =i_size.h-1; y>=0 ; y--){\r
+                       final int[] row_ptr=i_out[y];\r
+\r
                        //端数分\r
                        for (x = size_w-1;x>=x_mod_end;x--) {\r
                                w= ((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x]=w<=th?0:1;\r
+                               row_ptr[x]=w<=th?0:1;\r
                                bp -= 4;\r
                        }\r
                        //タイリング\r
                        for (;x>=0;x-=8) {\r
                                w= ((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x]=w<=th?0:1;\r
+                               row_ptr[x]=w<=th?0:1;\r
                                bp -= 4;\r
                                w= ((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-1]=w<=th?0:1;\r
+                               row_ptr[x-1]=w<=th?0:1;\r
                                bp -= 4;\r
                                w= ((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-2]=w<=th?0:1;\r
+                               row_ptr[x-2]=w<=th?0:1;\r
                                bp -= 4;\r
                                w= ((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-3]=w<=th?0:1;\r
+                               row_ptr[x-3]=w<=th?0:1;\r
                                bp -= 4;\r
                                w= ((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-4]=w<=th?0:1;\r
+                               row_ptr[x-4]=w<=th?0:1;\r
                                bp -= 4;\r
                                w= ((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-5]=w<=th?0:1;\r
+                               row_ptr[x-5]=w<=th?0:1;\r
                                bp -= 4;\r
                                w= ((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-6]=w<=th?0:1;\r
+                               row_ptr[x-6]=w<=th?0:1;\r
                                bp -= 4;\r
                                w= ((i_in[bp] & 0xff) + (i_in[bp + 1] & 0xff) + (i_in[bp + 2] & 0xff));\r
-                               i_out[y][x-7]=w<=th?0:1;\r
+                               row_ptr[x-7]=w<=th?0:1;\r
                                bp -= 4;\r
                        }       \r
                }\r