{"id":34693,"date":"2005-08-05T10:00:18","date_gmt":"2005-08-05T10:00:18","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2005\/08\/05\/why-does-the-internet-explorer-animated-logo-arrange-its-frame-vertically\/"},"modified":"2005-08-05T10:00:18","modified_gmt":"2005-08-05T10:00:18","slug":"why-does-the-internet-explorer-animated-logo-arrange-its-frame-vertically","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20050805-18\/?p=34693","title":{"rendered":"Why does the Internet Explorer animated logo arrange its frame vertically?"},"content":{"rendered":"<p><P>\nIf you ever tried to build a custom animated logo for Internet Explorer,\nyou cetainly noticed that the frames of the animation are arranged\nvertically rather than horizontally.  Why is that?\n<\/P>\n<P>\nBecause it&#8217;s much more efficient.\n<\/P>\n<P>\nRecall that bitmaps are stored as a series of rows of pixels.\nIn other words, if you number the pixels of a bitmap like this:\n<\/P>\n<PRE>\n123\n456\n789\n<\/PRE>\n<P>\nthen the pixels are stored in memory in the order 123456789.\n(Note: I&#8217;m assuming a top-down bitmap, but the same principle\napplies to bottom-up bitmaps.)\nNow observe what happens if you store your animation strip\nhorizontally:\n<\/P>\n<TABLE BORDER=\"1\" CELLSPACING=\"0\" STYLE=\"border-collapse: collapse;font-family: monospace\">\n<TR>\n    <TD>12<BR>AB<\/TD>\n    <TD>34<BR>CD<\/TD>\n    <TD>56<BR>EF<\/TD>\n    <TD>78<BR>GH<\/TD>\n<\/TR>\n<\/TABLE>\n<P>\nThese pixels are stored in memory in the order 12345678ABCDEFGH.\nTo draw the first frame requires pixels 1, 2, A and B.\nThe second frame takes 3, 4, C, and D.\nAnd so on.\nObserve that the pixels required for each frame are not contiguous\nin memory.  This means that they occupy different cache lines at least,\nand for a bitmap of any significant size, they also span multiple\nmemory pages.\n<\/P>\n<P>\nNow consider a vertically-arranged animation strip:\n<\/P>\n<TABLE BORDER=\"1\" CELLSPACING=\"0\" STYLE=\"border-collapse: collapse;font-family: monospace\">\n<TR><TD>12<BR>34<\/TD><\/TR>\n<TR><TD>56<BR>78<\/TD><\/TR>\n<TR><TD>AB<BR>CD<\/TD><\/TR>\n<TR><TD>EF<BR>GH<\/TD><\/TR>\n<\/TABLE>\n<P>\nAgain, the pixels are stored in memory in the order 12345678ABCDEFGH,\n[typo fixed, 15 Aug]\nbut this time, the pixels of the first frame are 1, 2, 3 and 4;\nthe second frame consists of 5, 6, 7, and 8; and so on.\nThis time, all the pixels for a single frame are adjacent in memory.\nThis means that they can be packed into a small number of cache\nlines, and reading the pixels for a single image\nwill not force you to jump across multiple pages.\n<\/P>\n<P>\nLet&#8217;s illustrate with some pictures:\nLet&#8217;s say that the large animation is a series of twelve\n38&#215;38 frames, for a total bitmap dimension of 38&#215;456.  Let&#8217;s assume\nfurther, for the sake of example,\nthat it&#8217;s a 32bpp bitmap and that the page size is 4KB.\n<\/P>\n<P>\nIf the bitmap were stored as a horizontal strip (456&#215;38), then\nthe memory layout would look like this,\nwhere I&#8217;ve color-coded each memory page.\n<\/P>\n<TABLE BORDER=\"1\" CELLPADDING=\"0\" CELLSPACING=\"1\" STYLE=\"border: none\">\n<COL SPAN=\"12\" STYLE=\"height: 38px\" VALIGN=\"top\">\n<TR>\n<TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD>\n<TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD>\n<TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"36\" BGCOLOR=\"#0033FF\"><\/TD>\n               <TD WIDTH=\"2\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"28\" BGCOLOR=\"#66FFFF\"><\/TD>\n               <TD WIDTH=\"10\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"20\" BGCOLOR=\"#66FF66\"><\/TD>\n               <TD WIDTH=\"18\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"12\" BGCOLOR=\"#FFCC00\"><\/TD>\n               <TD WIDTH=\"26\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD>\n<TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD>\n<TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD>\n<TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"34\" BGCOLOR=\"#00CC99\"><\/TD>\n               <TD WIDTH=\"4\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"26\" BGCOLOR=\"#999933\"><\/TD>\n               <TD WIDTH=\"12\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"18\" BGCOLOR=\"#CCCC00\"><\/TD>\n               <TD WIDTH=\"20\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"10\" BGCOLOR=\"#99FF33\"><\/TD>\n               <TD WIDTH=\"28\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD>\n<TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD>\n<TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD>\n<TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"32\" BGCOLOR=\"#FF0000\"><\/TD>\n               <TD WIDTH=\"6\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"24\" BGCOLOR=\"#FFFFFF\"><\/TD>\n               <TD WIDTH=\"14\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"16\" BGCOLOR=\"#FFFF00\"><\/TD>\n               <TD WIDTH=\"22\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"8\" BGCOLOR=\"#FF33CC\"><\/TD>\n               <TD WIDTH=\"30\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD>\n<TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD>\n<TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD>\n<TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"30\" BGCOLOR=\"#990099\"><\/TD>\n               <TD WIDTH=\"8\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"22\" BGCOLOR=\"#333366\"><\/TD>\n               <TD WIDTH=\"16\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"14\" BGCOLOR=\"#663333\"><\/TD>\n               <TD WIDTH=\"24\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"6\" BGCOLOR=\"#330066\"><\/TD>\n               <TD WIDTH=\"32\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD>\n<\/TR><\/TABLE>\n<P>\nObserve that no matter which frame you draw, you will have to touch\nevery single page since each frame containes a few bytes from each page.\n<\/P>\n<P>\nStoring the bitmap vertically, on the other hand, arranges the pixels\nlike so:\n<\/P>\n<TABLE BORDER=\"1\" CELLPADDING=\"0\" CELLSPACING=\"1\" STYLE=\"border: none\">\n<TR><TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#0033FF\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"36\" BGCOLOR=\"#0033FF\"><\/TD>\n               <TD WIDTH=\"2\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD><\/TR>\n<TR><TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#00CC99\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"34\" BGCOLOR=\"#00CC99\"><\/TD>\n               <TD WIDTH=\"4\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD><\/TR>\n<TR><TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF0000\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"32\" BGCOLOR=\"#FF0000\"><\/TD>\n               <TD WIDTH=\"6\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#990099\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"30\" BGCOLOR=\"#990099\"><\/TD>\n               <TD WIDTH=\"8\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD><\/TR>\n<TR><TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FFFF\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"28\" BGCOLOR=\"#66FFFF\"><\/TD>\n               <TD WIDTH=\"10\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD><\/TR>\n<TR><TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#999933\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"26\" BGCOLOR=\"#999933\"><\/TD>\n               <TD WIDTH=\"12\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFFFF\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"24\" BGCOLOR=\"#FFFFFF\"><\/TD>\n               <TD WIDTH=\"14\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD><\/TR>\n<TR><TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#333366\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"22\" BGCOLOR=\"#333366\"><\/TD>\n               <TD WIDTH=\"16\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD><\/TR>\n<TR><TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#66FF66\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"20\" BGCOLOR=\"#66FF66\"><\/TD>\n               <TD WIDTH=\"18\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD><\/TR>\n<TR><TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CCCC00\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"18\" BGCOLOR=\"#CCCC00\"><\/TD>\n               <TD WIDTH=\"20\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFFF00\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"16\" BGCOLOR=\"#FFFF00\"><\/TD>\n               <TD WIDTH=\"22\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD><\/TR>\n<TR><TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#663333\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"14\" BGCOLOR=\"#663333\"><\/TD>\n               <TD WIDTH=\"24\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD><\/TR>\n<TR><TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FFCC00\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"12\" BGCOLOR=\"#FFCC00\"><\/TD>\n               <TD WIDTH=\"26\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#99FF33\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"10\" BGCOLOR=\"#99FF33\"><\/TD>\n               <TD WIDTH=\"28\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD><\/TR>\n<TR><TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#FF33CC\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"8\" BGCOLOR=\"#FF33CC\"><\/TD>\n               <TD WIDTH=\"30\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD><\/TR>\n<TR><TD HEIGHT=\"38\">\n <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#330066\"><\/TD><\/TR>\n  <TR><TD WIDTH=\"6\" BGCOLOR=\"#330066\"><\/TD>\n               <TD WIDTH=\"32\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE><TABLE CELLPADDING=\"0\" CELLSPACING=\"0\">\n  <TR><TD COLSPAN=\"2\" WIDTH=\"38\" BGCOLOR=\"#CC0033\"><\/TD><\/TR>\n <\/TABLE>\n<\/TD><\/TR>\n<\/TABLE>\n<P>\nNotice that with the vertical strip,\neach frame touches only two or three pages;\ncompare the horizontal strip, where each frame touches seventeen pages.\nThis is quite a savings especially when you realize that\nmost of the time, the only frame being drawn is the first one.\nThe other frames are used only during animation.\nIn other words, this simple change trimmed\n60KB out of the normal working set.\n<\/P><\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you ever tried to build a custom animated logo for Internet Explorer, you cetainly noticed that the frames of the animation are arranged vertically rather than horizontally. Why is that? Because it&#8217;s much more efficient. Recall that bitmaps are stored as a series of rows of pixels. In other words, if you number the [&hellip;]<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[25],"class_list":["post-34693","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-code"],"acf":[],"blog_post_summary":"<p>If you ever tried to build a custom animated logo for Internet Explorer, you cetainly noticed that the frames of the animation are arranged vertically rather than horizontally. Why is that? Because it&#8217;s much more efficient. Recall that bitmaps are stored as a series of rows of pixels. In other words, if you number the [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/34693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=34693"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/34693\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=34693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=34693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=34693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}