OSDN Git Service

update Hacking_of_LHa
authorKoji Arai <jca02266@gmail.com>
Wed, 25 Jun 2008 13:22:01 +0000 (22:22 +0900)
committerKoji Arai <jca02266@gmail.com>
Wed, 25 Jun 2008 13:22:01 +0000 (22:22 +0900)
Hacking_of_LHa

index 1295e4d..f07bb52 100644 (file)
@@ -5087,24 +5087,44 @@ Huffman
   unsigned short c_table[4095+1];
 
 ¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢12 ¥Ó¥Ã¥È(2^12=4096)¤ÎHuffmanÉä¹æ¤Ë¤Ä¤¤¤Æɽ°ú¤­¤¬²Äǽ¤È¤Ê¤Ã
-¤Æ¤¤¤ë¡£¤½¤·¤Æ¡¢Ê£¹ç¸ì¤Ï¡¢0...NC ¤ÎÈϰϤǤ¢¤ë¤«¤é¡¢
+¤Æ¤¤¤ë¡£¤½¤·¤Æ¡¢Éü¹æ¸ì¤Ï¡¢0...NC ¤ÎÈϰϤǤ¢¤ë¤«¤é¡¢
     c_table[¥Ó¥Ã¥ÈÎó] < NC
 ¤Î¾ì¹ç¤Ï¡¢¤½¤Î¤Þ¤Þɽ°ú¤­¤Ç
     c_table[¥Ó¥Ã¥ÈÎó] >= NC
 ¤Î¾ì¹ç¤Ï¡¢ÌڤΥ롼¥È¥Î¡¼¥É¤ò¼¨¤·¡¢¤½¤ÎÃͤ«¤éÌÚ¤òé¤Ã¤ÆÉü¹æ¤Ç¤­¤ë¤è¤¦¤Ë
 ¤Ê¤Ã¤Æ¤¤¤ë¡£¿Þ¼¨¤¹¤ë¤È
 
-       /\
-      a /\           ... ³¬ÁØ:1
-        b            ... ³¬ÁØ:2
-        :
-           /\
-          x  x       ... ³¬ÁØ:12
+----------------------------------------------------------------------------
+       .
+      / \
+     a   .           ... ³¬ÁØ:1   `.
+        / \                        |
+        b            ... ³¬ÁØ:2    `> É½°ú¤­
+                           :       '
+                           :       |
+            .        ... ³¬ÁØ:11   |
+           / \                     |
+          x   x      ... ³¬ÁØ:12  .' <- É½°ú¤­¤Î·ë²Ì x ¤¬(>=NC)¤Î¾ì¹ç¡¢
+             / \                        Ìڤγ¤­¤¬¤¢¤ë¤³¤È¤ò¼¨¤¹
+            .   .    ... ³¬ÁØ:13  `.
+                                   |
+                           :        >   left[]/right[]¤Çɽ¸½ (³¬ÁØ12¤¬root)
+                     ... ³¬ÁØ:16  .'
+
+    ³¬ÁØ 1 ¡Á 11 (1¡Á11bit)¤ÎHuffmanÌڤˤĤ¤¤Æ¤Ï¡¢É½°ú¤­¤ÇÉü¹æ
+    ³¬ÁØ 12 ¤¬ <  NC ¤Î¾ì¹ç¤Ï¡¢¤½¤Î¤Þ¤Þɽ°ú¤­¤ÇÉü¹æ
+    ³¬ÁØ 12 ¤¬ >= NC ¤Î¾ì¹ç¤Ï¡¢Àá¤ò¼¨¤·¡¢left[³¬ÁØ12¤ÎÃÍ],right[³¬ÁØ12¤ÎÃÍ]¤¬
+    ¤½¤Î²¼¤ÎÀá¤ò»Ø¤¹¡£
+----------------------------------------------------------------------------
+
+³¬ÁØ12¤è¤ê²¼(13 °Ê¾å¤Î bit ¿ô¤Î Huffman Éä¹æ)¤Î Huffman ÌڤˤĤ¤¤Æ
+left[], right[] ¤Çɽ¤·¤Æ¤¤¤ë¤è¤¦¤À¡£¤³¤ÎÌڤΥΡ¼¥É¤ÎÃͤϠNC °Ê¾å¤Î¿ôÃÍ
+¤òÏ¢ÈÖ¤«²¿¤«¤Ç³ä¤êÅö¤Æ¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¤«¡©¤³¤ì¤Ë¤Ä¤¤¤Æ¤Ï¤³¤ì°Ê¹ß
+¤Ç³Îǧ¤¹¤ë¡£
 
-¤³¤ì¤è¤ê¡¢²¼¤Î³¬ÁؤΠHuffman ÌڤˤĤ¤¤Æ left[], right[] ¤Çɽ¤·¤Æ¤¤¤ë¤è
-¤¦¤À¡£¤Ê¤ª¡¢³¬Áؤ¬¿¼¤¤ Huffman ÌڤȤϡ¢bit Ä¹¤¬Ä¹¤¤Éä¹æ¤Ç¤¢¤ê¡¢bit Ä¹¤¬
-Ť¤¤È¤¤¤¦¤³¤È¤Ï½Ð¸½ÉÑÅÙ¤¬Ä㤤¤Ï¤º¤Ç¤¢¤ë¤«¤é¡¢left[], right[] ¤ÇÌÚ¤òé
-¤ë²ó¿ô¤Ï¾¯¤Ê¤¤¤Ï¤º¤Ç¤¢¤ë¡£¤³¤ì¤ÏÍý¤Ë¤«¤Ê¤Ã¤Æ¤¤¤ë¡£
+¤Ê¤ª¡¢³¬Áؤ¬¿¼¤¤ Huffman ÌڤȤϡ¢bit Ä¹¤¬Ä¹¤¤Éä¹æ¤Ç¤¢¤ê¡¢bit Ä¹¤¬Ä¹¤¤¤È
+¤¤¤¦¤³¤È¤Ï½Ð¸½ÉÑÅÙ¤¬Ä㤤¤Ï¤º¤Ç¤¢¤ë¤«¤é¡¢left[], right[] ¤ÇÌÚ¤òé¤ë²ó¿ô
+¤Ï¾¯¤Ê¤¤¤Ï¤º¤Ç¤¢¤ë¡£¤³¤ì¤ÏÍý¤Ë¤«¤Ê¤Ã¤Æ¤¤¤ë¡£
 
 ¤Á¤ç¤Ã¤Èµ¤Ê¬Åª¤Ë¥Î¤é¤Ê¤¤¤Î¤Ç¤Ï¤·¤ç¤ë¤¬¡¢¸å¤Î (E), (F) ¤ÏÌÚ¤òƱ»þ¤Ëºî¤Ã
 ¤Æ¤¤¤ë¤³¤È¤ò½ü¤±¤Ð¡¢maketree.c:make_code() ¤Î¸åȾÉôʬ¤ÈƱ¤¸¤À¤È¹Í¤¨¤Æ