home *** CD-ROM | disk | FTP | other *** search
/ BBS 1 / BBS#1.iso / document / compress.arj / DIPLOMA.TXT next >
Encoding:
Text File  |  1992-05-29  |  33.2 KB  |  752 lines

  1. .hm2  .dh1 .ce Input/Output with Embedded Data Compression
  2. .fm64 .df1 .ce -- Page .pa --
  3. .ls1
  4. .pl66
  5. .rm72 .lm0
  6. .tm5  .bm60
  7. .ff1
  8. .tc 72 1 0 0  0 1 4 1 3 1 3 1 3 1
  9. .sh .sf
  10.  
  11.  
  12. .ce ä¼¿Γα¿⌐ æ. è«σ¼á¡ε¬
  13.  
  14.  
  15. .ce ÉÑ὿ºáµ¿∩ óó«ñá-óδó«ñá ß« ßªáΓ¿Ñ¼ ñá¡¡δσ
  16.  
  17.  
  18. .ce Input/Output with Embedded Data Compression
  19.  
  20.  
  21.  
  22. .ce è¿Ñó -- 1992
  23.  
  24.  
  25.  
  26.  
  27.  
  28. .ce Abstract
  29.  
  30.  
  31.     The data compression techniques became very popular during the
  32. last years. However, most compressors are implemented as standalone
  33. applications which are hard to integrate into programs. This paper
  34. describes input/output library with builtin compression, suitable for
  35. embedding into applications. A quick survey of compression algorithms
  36. is also provided.
  37.  
  38.  
  39.  
  40. .ce Ç¡¡«Γᵿ∩
  41.  
  42.  
  43.     é »«ß½Ññ¡ÑÑ óαѼ∩ ¼ÑΓ«ñδ ßªáΓ¿∩ ñá¡¡δσ »«½πτ¿½¿ Φ¿α«¬«Ñ
  44. αáß»α«ßΓαá¡Ñ¡¿Ñ. ÆÑ¼ ¡Ñ ¼Ñ¡ÑÑ, í«½∞Φ¿¡ßΓó« »α«úαá¼¼ ßªáΓ¿∩ αÑ὿º«óá¡δ
  45. ó ó¿ñÑ «Γñѽ∞¡δσ »α¿½«ªÑ¡¿⌐, τΓ« ºáΓαπñ¡∩ÑΓ ¿σ ¿¡ΓÑúαᵿε ó »α«úαá¼¼δ
  46. »«½∞º«óáΓѽ∩. é αáí«ΓÑ «»¿ßδóáÑΓß∩ í¿í½¿«ΓѬá óó«ñá-óδó«ñá ß óßΓα«Ñ¡¡δ¼
  47. ߪáΓ¿Ñ¼ ñá¡¡δσ, πñ«í¡πε ñ½∩ óßΓαá¿óá¡¿∩ ó »α¿¬½áñ¡δÑ »α«úαá¼¼δ. æñѽá¡
  48. ΓᬪѠ¬αáΓ¬¿⌐ «íº«α á½ú«α¿Γ¼«ó ßªáΓ¿∩.
  49.  
  50.  
  51.  
  52. .te 1 .ce Äíº«α ¼ÑΓ«ñ«ó ßªáΓ¿∩ ñá¡¡δσ
  53.  
  54.  
  55.     îÑΓ«ñδ ßªáΓ¿∩ ñá¡¡δσ ¿¼ÑεΓ ñ«ßΓáΓ«τ¡« ñ½¿¡¡πε ¿ßΓ«α¿ε.
  56. Å«»δΓáѼß∩ ñáΓ∞ ¬αáΓ¬¿⌐ «íº«α «ß¡«ó¡δσ ¿ñÑ⌐ ¿ αÑ὿ºáµ¿⌐, ¡Ñ
  57. »αÑΓÑ¡ñπεΘ¿⌐, «ñ¡á¬«, ¡á »«½¡«Γπ. ü«½ÑÑ »«ñα«í¡δÑ ßóÑñÑ¡¿∩ ¼«ª¡« ¡á⌐Γ¿,
  58. ¡á»α¿¼Ñα, ó [èα¿τÑó߬¿⌐], [Witten].
  59.  
  60.     æπΘÑßΓóπÑΓ α∩ñ "¡á¿ó¡δσ" »«ñσ«ñ«ó ¬ ñá¡¡«⌐ »α«í½Ñ¼Ñ.  ìá¿í«½ÑÑ
  61. ¿ºóÑßΓ¡δ⌐ -- φΓ« ¬«ñ¿α«óá¡¿Ñ ñ½¿¡ ßÑα¿⌐ (run length encoding, RLE).
  62. æπΓ∞ ¼ÑΓ«ñá: ºá¼Ñ¡á µÑ»«τѬ »«óΓ«α∩εΘ¿σß∩ ß¿¼ó«½«ó ¡á «ñ¿¡ φΓ«Γ ß¿¼ó«½
  63. ¿ ßτÑΓτ¿¬ »«óΓ«αÑ¡¿∩. Åα«í½Ñ¼á ß«ßΓ«¿Γ ó Γ«¼, τΓ«íδ αá߻ᬫóΘ¿¬ ¼«ú
  64. «Γ½¿τ¿Γ∞ ó αѺπ½∞Γ¿απεΘѼ »«Γ«¬Ñ Γá¬πε ¬«ñ¿α«óá¡¡πε ßÑα¿ε «Γ ñαπú¿σ
  65. ß¿¼ó«½«ó. ÉÑΦÑ¡¿Ñ «τÑó¿ñ¡« -- ß¡áíªáΓ∞ óßÑ ΓᬿѠµÑ»«τ¬¿ ¡Ñ¬«Γ«α묨
  66. ºáú«½«ó¬á¼¿ (¡á»α¿¼Ñα, ¿ß»«½∞º«óáΓ∞ »Ñαóδ⌐ í¿Γ ¬á¬ »α¿º¡á¬ ¬«ñ¿α«óá¡¡«⌐
  67. ßÑα¿¿). îÑΓ«ñ ñ«ßΓáΓ«τ¡« φΣΣÑ¬Γ¿óÑ¡ ñ½∩ úαáΣ¿τÑ߬¿σ ¿º«íαáªÑ¡¿⌐ ó
  68. Σ«α¼áΓÑ "íá⌐Γ ¡á »¿¬ßѽ" (¡á»α¿¼Ñα, Σ«α¼áΓ PCX ¿ß»«½∞ºπÑΓ ¬«ñ¿α«óá¡¿Ñ
  69. RLE).
  70.  
  71.     ìÑñ«ßΓáΓ¬¿ ¼ÑΓ«ñá RLE «τÑó¿ñ¡δ -- ¡¿º¬á∩ ßΓѻѡ∞ ßªáΓ¿∩
  72. (¡á»α¿¼Ñα, ó ΓѬßΓÑ ñá¡¡«⌐ ßΓáΓ∞¿ «¡ ß¼«ªÑΓ π»á¬«óáΓ∞ Γ«½∞¬« µÑ»«τ¬¿
  73. »α«íѽ«ó ó ¡áτá½Ñ ßΓ᫬).
  74.  
  75.     æñѽáѼ ºñÑß∞ ¡Ñí«½∞Φ«Ñ «ΓßΓπ»½Ñ¡¿Ñ ñ½∩ πΓ«τ¡Ñ¡¿∩ ΓÑନ¡«½«ú¿¿.
  76. é ñá½∞¡Ñ⌐ΦѼ ¼δ íπñѼ αáßß¼áΓα¿óáΓ∞ π»á¬«óΘ¿¬ (compressor) ¬á¬
  77. »α«úαá¼¼π, »αÑ«íαáºπεΘπε ¡Ñ¬«Γ«αδ⌐ ñó«¿τ¡δ⌐ »«Γ«¬ ñá¡¡δσ (»«ñ«í¡δ⌐
  78. Σá⌐½π ó ß¿ßΓѼѠUNIX) ó ñαπú«⌐, ªÑ½áΓѽ∞¡« ¼Ñ¡∞ΦÑú« αẼÑαá.
  79. æ««ΓóÑΓßΓóÑ¡¡«, αá߻ᬫóΘ¿¬ (uncompressor) -- »α«úαá¼¼á, «ßπΘÑßΓó½∩εΘá∩
  80. «íαáΓ¡«Ñ »αÑ«íαẫóá¡¿Ñ, »α¿τѼ «ñ¡«º¡áτ¡«. Æá¬¿¼ «íαẫ¼, ¼δ ¿ß¬½ετáѼ
  81. ¿º αáßß¼«ΓαÑ¡¿∩ ¼ÑΓ«ñδ ßªáΓ¿∩, ΓÑα∩εΘ¿Ñ ¿¡Σ«α¼áµ¿ε (¡á»α¿¼Ñα, ¼ÑΓ«ñ
  82. ߪáΓ¿∩ ¿º«íαáªÑ¡¿⌐ JPEG, «ß¡«óá¡¡δ⌐ ¡á »αÑ«íαẫóá¡¿∩σ µóÑΓ«ó,
  83. »αá¬Γ¿τÑ߬¿ ¡Ñ αẽ¿τáѼδσ τѽ«óÑτÑ߬¿¼ ú½áº«¼).
  84.  
  85.     Å«ñ ßΓ«¿¼«ßΓ∞ε ¬«ñ¿α«óá¡¿∩ »«¡¿¼áÑΓß∩ ßαÑñ¡∩∩ ñ½¿¡á ¬«ñ«ó«ú«
  86. ß½«óá (ó í¿Γáσ). êºíδΓ«τ¡«ßΓ∞ ¬«ñ¿α«óá¡¿∩ αáó¡á αạ«ßΓ¿ ¼Ñªñπ
  87. ßΓ«¿¼«ßΓ∞ε ¿ φ¡Γα«»¿Ñ⌐ ¬«ñ¿α«óá¡¿∩. ÄτÑó¿ñ¡«, τΓ« σ«α«Φ¿⌐ á½ú«α¿Γ¼
  88. ߪáΓ¿∩ ñ«½ªÑ¡ ¼¿¡¿¼¿º¿α«óáΓ∞ ¿ºíδΓ«τ¡«ßΓ∞.  öπ¡ñá¼Ñ¡Γá½∞¡á∩ ΓÑ«αѼá
  89. ÿÑ¡¡«¡á « ¬«ñ¿α«óá¡¿¿ ¿ßΓ«τ¡¿¬«ó ú«ó«α¿Γ « Γ«¼, τΓ« ßΓ«¿¼«ßΓ∞
  90. ¬«ñ¿α«óá¡¿∩ óßÑúñá ¡Ñ ¼Ñ¡∞ΦÑ φ¡Γα«»¿¿ ¿ßΓ«τ¡¿¬á, σ«Γ∩ ¼«ªÑΓ íδΓ∞ ß¬«½∞
  91. πú«ñ¡« í½¿º¬á ¬ ¡Ñ⌐ [ÿÑ¡¡«¡].
  92.  
  93.     äá½∞¡Ñ⌐ΦÑÑ «íßπªñÑ¡¿Ñ φΓ«ú« ¿ ßó∩ºá¡¡δσ ß ¡¿¼ ó«»α«ß«ó ß¼.
  94. [èα¿τÑó߬¿⌐], ßΓα.15-54.
  95.  
  96.     äá½ÑÑ, »α«µÑßߠߪáΓ¿∩ ñá¡¡δσ αáºí¿óáÑΓß∩ ¡á ñóá -- Γ.¡.
  97. ¼«ñѽ¿α«óá¡¿Ñ ¿ ¬«ñ¿α«óá¡¿Ñ (ß¼., ¡á»α¿¼Ñα, [Rissanen]). ¥Γ¿ »α«µÑßßδ
  98. (¿ á½ú«α¿Γ¼δ, ¿σ αÑ὿ºπεΘ¿Ñ) ¼«ª¡« αáßß¼áΓα¿óáΓ∞ ¡Ñºáó¿ß¿¼«.
  99.  
  100.         é¡áτá½Ñ »«ú«ó«α¿¼ « ΓÑσ¡«½«ú¿∩󠬫ñ¿α«óá¡¿∩.
  101.  
  102.  
  103.  
  104. .te 1 .ce îÑΓ«ñδ ¬«ñ¿α«óá¡¿∩
  105.  
  106.  
  107.     è«ñ¿α«óá¡¿Ñ (encoding) ¿¼ÑÑΓ ñѽ« ß »«Γ«¬«¼ ß¿¼ó«½«ó ó
  108. ¡Ñ¬«Γ«α«¼ á½Σáó¿ΓÑ, »α¿τѼ τáßΓ«Γδ ß¿¼ó«½«ó αẽ¿τ¡δ. ûѽ∞ε ¬«ñ¿α«óá¡¿∩
  109. ∩ó½∩ÑΓß∩ »αÑ«íαẫóá¡¿Ñ φΓ«ú« »«Γ«¬á ó »«Γ«¬ í¿Γ ¼¿¡¿¼á½∞¡«⌐ ñ½¿¡δ. ¥Γ«
  110. ñ«ßΓ¿úáÑΓß∩ π¼Ñ¡∞ΦÑ¡¿Ñ¼ φ¡Γα«»¿¿ »«Γ«¬á »πΓѼ πτÑΓá τáßΓ«Γδ ß¿¼ó«½«ó:
  111. ñ½¿¡á ¬«ñá ñ«½ª¡á íδΓ∞ »α«»«αµ¿«¡á½∞¡á ¿¡Σ«α¼áµ¿¿, ß«ñÑαªáΘÑ⌐ß∩ ó«
  112. óσ«ñ¡«¼ »«Γ«¬Ñ. àß½¿ αáß»αÑñѽѡ¿Ñ óÑα«∩Γ¡«ßΓÑ⌐ τáßë࿺óÑßΓ¡«, Γ«
  113. ¼«ª¡« »«ßΓα«¿Γ∞ «»Γ¿¼á½∞¡«Ñ ¬«ñ¿α«óá¡¿Ñ.  çáñáτá πß½«ª¡∩ÑΓß∩ ó ß½πτáÑ,
  114. Ñß½¿ αáß»αÑñѽѡ¿Ñ τáßΓ«Γ ß¿¼ó«½«ó ºáαá¡ÑÑ ¡Ñ¿ºóÑßΓ¡«. é φΓ«¼ ß½πτáÑ
  115. ßπΘÑßΓóπÑΓ ñóá αẽ¿τ¡δσ »«ñσ«ñá.
  116.  
  117.     ÅÑαóδ⌐ »«ñσ«ñ: »α«ß¼«ΓαÑΓ∞ óσ«ñ¡«⌐ »«Γ«¬ ¿ »«ßΓα«¿Γ∞
  118. ¬«ñ¿α«óá¡¿Ñ ¡á «ß¡«óá¡¿¿ ß«íαá¡¡«⌐ ßΓáΓ¿ßΓ¿¬¿ (»α¿ φΓ«¼ »«ΓαÑíπεΓß∩ ñóá
  119. »α«σ«ñá »« Σá⌐½π, τΓ« «úαá¡¿τ¿óáÑΓ ßΣÑαπ »α¿¼Ñ¡Ñ¡¿∩ Γᬿσ á½ú«α¿Γ¼«ó).
  120. é óδσ«ñ¡«⌐ »«Γ«¬ ó Γᬫ¼ ß½πτáÑ ñ«½ª¡á íδΓ∞ ºá»¿ßá¡á ßσѼá
  121. ¿ß»«½∞º«óá¡¡«ú« ¬«ñ¿α«óá¡¿∩, ¬«Γ«αá∩ íπñÑΓ ¿ß»«½∞º«óá¡á ºáΓѼ
  122. ñѬ«ñÑα«¼. Åα¿¼Ñα -- ßΓáΓ¿τÑ߬«Ñ ¬«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á [Huffman].
  123.  
  124.         éΓ«α«⌐ »«ñσ«ñ ¿ß»«½∞ºπÑΓ Γᬠ¡áºδóáѼδ⌐ áñá»Γ¿ó¡δ⌐ ¬«ñÑα
  125. (adaptive coder). êñÑ∩ ß«ßΓ«¿Γ ó Γ«¼, τΓ«íδ ¼Ñ¡∩Γ∞ ßσÑ¼π ¬«ñ¿α«óá¡¿∩ ó
  126. ºáó¿ß¿¼«ßΓ¿ «Γ ¿ßσ«ñ¡δσ ñá¡¡δσ. Æá¬«⌐ á½ú«α¿Γ¼ «ñ¡«»α«σ«ñÑ¡ ¿ ¡Ñ
  127. ΓαÑíπÑΓ »ÑαÑñáτ¿ ¿¡Σ«α¼áµ¿¿ «í ¿ß»«½∞º«óá¡¡«¼ ¬«ñ¿α«óá¡¿¿ ó ∩ó¡«¼ ó¿ñÑ.
  128. é¼ÑßΓ« φΓ«ú« ñѬ«ñÑα, ßτ¿Γδóá∩ ¬«ñ¿α«óá¡¡δ⌐ »«Γ«¬, ß¿¡σα«¡¡« ß ¬«ñÑα«¼
  129. ¿º¼Ñ¡∩ÑΓ ßσÑ¼π ¬«ñ¿α«óá¡¿∩, ¡áτ¿¡á∩ ß ¡Ñ¬«Γ«α«⌐ »αÑñ«»αÑñѽѡ¡«⌐.
  130. Çñá»Γ¿ó¡«Ñ ¬«ñ¿α«óá¡¿Ñ ¼«ªÑΓ ñáΓ∞ í«½∞Φπε ßΓѻѡ∞ ßªáΓ¿∩, »«ß¬«½∞¬π
  131. ¼«úπΓ íδΓ∞ πτΓÑ¡δ ½«¬á½∞¡δÑ ¿º¼Ñ¡Ñ¡¿∩ τáßΓ«Γ.  Åα¿¼Ñα«¼ ∩ó½∩ÑΓß∩
  132. ñ¿¡á¼¿τÑ߬«Ñ ¬«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á (ß¼. [Gallager], [Knuth], [Vitter]).
  133.  
  134.         é ¬áτÑßΓóÑ »α¿¼Ñαá αáßß¼«Γα¿¼ ßΓáΓ¿τÑ߬«Ñ ¬«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á.
  135. ¥Γ« ¬«ñ¿α«óá¡¿Ñ ß«»«ßΓáó½∩ÑΓ óσ«ñ¡δ¼ ß¿¼ó«½á¼ («íδτ¡« »αÑñßΓáó½∩Ѽδ¼
  136. µÑ»«τ¬á¼¿ í¿Γ«ó αẽ¿τ¡«⌐ ñ½¿¡δ) µÑ»«τ¬¿ í¿Γ«ó »ÑαѼѡ¡«⌐ ñ½¿¡δ.  ä½¿¡á
  137. ¬«ñá ñ½∩ ß¿¼ó«½á »α«»«αµ¿«¡á½∞¡á ñó«¿τ¡«¼π ½«úáα¿Σ¼π Ñú« τáßΓ«Γδ,
  138. óº∩Γ«¼π ß «íαáΓ¡δ¼ º¡á¬«¼. ¥Γ« ¬«ñ¿α«óá¡¿Ñ ∩ó½∩ÑΓß∩ »αÑΣ¿¬ß¡δ¼, τΓ«
  139. »«ºó«½∩ÑΓ ½Ñú¬« Ñú« ñѬ«ñ¿α«óáΓ∞ (ó »αÑΣ¿¬ß¡«¼ ¬«ñ¿α«óá¡¿¿ ¬«ñ ½εí«ú«
  140. ß¿¼ó«½á ¡Ñ ∩ó½∩ÑΓß∩ »αÑΣ¿¬ß«¼ ¬«ñá ¡¿¬á¬«ú« ñαπú«ú« ß¿¼ó«½á; »«ñα«í¡ÑÑ
  141. ß¼. [èα¿τÑó߬¿⌐], 29-34).
  142.  
  143.         ÅπßΓ∞ óσ«ñ¡«⌐ á½Σáó¿Γ ß«ßΓ«¿Γ ¿º τÑΓδαÑσ ß¿¼ó«½«ó:  a, b, c, d,
  144. τáßΓ«Γδ ¬«Γ«αδσ αáó¡δ ß««ΓóÑΓßΓóÑ¡¡« 1/2, 1/4, 1/8, 1/8.  è«ñ¿α«óá¡¿Ñ
  145. òáΣΣ¼Ñ¡á ñ½∩ φΓ«ú« á½Σáó¿Γá ñáÑΓß∩ ß½ÑñπεΘÑ⌐ Γáí½¿µÑ⌐:
  146.  
  147.          ß¿¼ó«½ │ τáßΓ«Γá │    óσ«ñ¡«Ñ   │  óδσ«ñ¡«Ñ
  148.                 │         │  ¬«ñ¿α«óá¡¿Ñ │ ¬«ñ¿α«óá¡¿Ñ
  149.         ────────┼─────────┼──────────────┼─────────────
  150.            a    │   1/2   │   00         │   0
  151.            b    │   1/4   │   01         │   10
  152.            c    │   1/8   │   10         │   110
  153.            d    │   1/8   │   11         │   111
  154.  
  155.         ìá»α¿¼Ñα, ¬«ñ«¼ µÑ»«τ¬¿ abaaacb, »αÑñßΓáó½Ñ¡¡«⌐ ¡á óσ«ñÑ ¬á¬ 00
  156. 01 00 00 00 10 01, íπñÑΓ 0 10 0 0 0 110 10 (»α«íѽδ ñ«íáó½Ñ¡δ ñ½∩
  157. πñ«íßΓóá τΓÑ¡¿∩). 14 í¿Γ ¡á óσ«ñÑ ñ὿ 11 í¿Γ ¡á óδσ«ñÑ. è«ñ¿α«óá¡¿Ñ »«
  158. òáΣΣ¼Ñ¡π «íδτ¡« ßΓα«¿Γß∩ ¿ σαá¡¿Γß∩ ó ó¿ñÑ ñó«¿τ¡«ú« ñÑαÑóá, ó ½¿ßΓ∞∩σ
  159. ¬«Γ«α«ú« ¡áσ«ñ∩Γß∩ ß¿¼ó«½δ, á ¡á ñπúáσ "¡á»¿ßá¡δ" µ¿Σαδ 0 ¿½¿ 1. è«ñ«¼
  160. ß¿¼ó«½á ∩ó½∩ÑΓß∩ »πΓ∞ «Γ ¬«α¡∩ ñÑαÑóá ¬ φΓ«¼π ß¿¼ó«½π.  Åα¿
  161. ¿ß»«½∞º«óá¡¿¿ áñá»Γ¿ó¡«ú« ¬«ñ¿α«óá¡¿∩ òáΣΣ¼Ñ¡á »α«í½Ñ¼á ß«ßΓ«¿Γ ó
  162. ¡Ñ«íσ«ñ¿¼«ßΓ¿ »«ßΓ«∩¡¡«⌐ ¬«ααÑ¬Γ¿α«ó¬¿ ñÑαÑóá ó ß««ΓóÑΓßΓó¿¿ ß
  163. ¿º¼Ñ¡∩εΘÑ⌐ß∩ ßΓáΓ¿ßΓ¿¬«⌐ óσ«ñ¡«ú« »«Γ«¬á.
  164.  
  165.         ä«ßΓ«¿¡ßΓóἿ ¼ÑΓ«ñá òáΣΣ¼Ñ¡á ∩ó½∩εΓß∩ Ñú« ñ«ßΓáΓ«τ¡« óδß«¬á∩
  166. ߬«α«ßΓ∞ ¿ σ«α«ΦÑÑ ¬áτÑßΓó« ßªáΓ¿∩. ¥Γ«Γ á½ú«α¿Γ¼ ßαáó¡¿Γѽ∞¡« ñáó¡«
  167. ¿ºóÑßΓÑ¡ ¿ Φ¿α«¬« »α¿¼Ñ¡∩ÑΓß∩; »α¿¼ÑαἿ ¼«úπΓ ß½πª¿Γ∞ »α«úαá¼¼á
  168. compress Äæ UNIX (»α«úαá¼¼¡á∩ αÑ὿ºáµ¿∩) ¿ ßΓá¡ñáαΓ ¬«ñ¿α«óá¡¿∩ ñ½∩
  169. Σá¬ß«ó [Hunter] (á»»áαáΓ¡á∩ αÑ὿ºáµ¿∩).
  170.  
  171.     è«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á ¿¼ÑÑΓ ¼¿¡¿¼á½∞¡πε ¿ºíδΓ«τ¡«ßΓ∞ »α¿
  172. πß½«ó¿¿, τΓ« ¬áªñδ⌐ ß¿¼ó«½ ¬«ñ¿απÑΓß∩ «Γñѽ∞¡«⌐ µÑ»«τ¬«⌐ ó á½Σáó¿ΓÑ
  173. {0,1}).
  174.  
  175.         ìÑñ«ßΓáΓ¬«¼ ¬«ñ¿α«óá¡¿∩ òáΣΣ¼Ñ¡á ∩ó½∩ÑΓß∩ ºáó¿ß¿¼«ßΓ∞ ßΓѻѡ¿
  176. ߪáΓ¿∩ «Γ í½¿º«ßΓ¿ óÑα«∩Γ¡«ßΓÑ⌐ ß¿¼ó«½«ó ¬ «Γα¿µáΓѽ∞¡δ¼ ßΓѻѡ∩¼ 2;
  177. φΓ« ßó∩ºá¡« ß ΓѼ, τΓ« ¬áªñδ⌐ ß¿¼ó«½ ¬«ñ¿απÑΓß∩ *µÑ½δ¼* τ¿ß½«¼ í¿Γ.
  178. ìá¿í«½ÑÑ ∩ᬫ φΓ« »α«∩ó½∩ÑΓß∩ »α¿ ¬«ñ¿α«óá¡¿¿ ñóπσß¿¼ó«½∞¡«ú« á½Σáó¿Γá:
  179. ó φΓ«¼ ß½πτáѠߪáΓ¿Ñ *óßÑúñá* «ΓßπΓßΓóπÑΓ, ¡Ñß¼«Γα∩ ¡á αẽ¿τ¿Ñ
  180. óÑα«∩Γ¡«ßΓÑ⌐ ß¿¼ó«½«ó; á½ú«α¿Γ¼ Σá¬Γ¿τÑ߬¿ "«¬απú½∩ÑΓ" ¿σ ñ« 1/2!
  181.  
  182.         ¥Γá »α«í½Ñ¼á ¼«ªÑΓ íδΓ∞ τáßΓ¿τ¡« αÑΘѡᠺá ßτÑΓ í½«¬¿α«óá¡¿∩
  183. óσ«ñ¡«ú« »«Γ«¬á (Γ.Ñ. óóÑñÑ¡¿∩ ó αáßß¼«ΓαÑ¡¿Ñ ¡«óδσ ß¿¼ó«½«ó ó¿ñá 'ab',
  184. 'abc', ... úñÑ a, b, c -- ß¿¼ó«½δ ¿ßσ«ñ¡«ú« á½Σáó¿Γá).  Äñ¡á¬« φΓ« ¡Ñ
  185. »«ºó«½∩ÑΓ »«½¡«ßΓ∞ε ¿ºíáó¿Γ∞ß∩ «Γ »«ΓÑα∞ («¡¿ ½¿Φ∞ π¼Ñ¡∞ΦáεΓß∩
  186. »α«»«αµ¿«¡á½∞¡« αẼÑαπ í½«¬á) ¿ »α¿ó«ñ¿Γ ¬ αѺ¬«¼π α«ßΓ𠬫ñ«ó«ú«
  187. ñÑαÑóá: Ñß½¿, ¡á»α¿¼Ñα, ß¿¼ó«½á¼¿ óσ«ñ¡«ú« á½Σáó¿Γá ∩ó½∩εΓß∩ 8-í¿Γ«óδÑ
  188. íá⌐Γδ ß« º¡áτÑ¡¿∩¼¿ 0 .. 255, Γ« »α¿ í½«¬¿α«óá¡¿¿ »« ñóá ß¿¼ó«½á ¼δ
  189. »«½πτáѼ 65536 ß¿¼ó«½«ó (¿ ßΓ«½∞¬« ªÑ ½¿ßΓ∞Ñ󠬫ñ«ó«ú« ñÑαÑóá), á »α¿
  190. í½«¬¿α«óá¡¿¿ »« Γα¿ -- 16777216!  æ««ΓóÑΓßΓóÑ¡¡« ó«ºαáßΓπΓ ΓαÑí«óá¡¿∩ ¬
  191. »á¼∩Γ¿ ¿ óαѼ∩ »«ßΓα«Ñ¡¿∩ ñÑαÑóá (á »α¿ áñá»Γ¿ó¡«¼ ¬«ñ¿α«óá¡¿¿ -- ¿
  192. óαѼ∩ «í¡«ó½Ñ¡¿∩ ñÑαÑóá, á º¡áτ¿Γ, ¿ óαѼ∩ ßªáΓ¿∩). Å«ΓÑα¿ ªÑ ß«ßΓáó∩Γ
  193. ó ßαÑñ¡Ñ¼ 1/2 í¿Γá ¡á ß¿¼ó«½ »α¿ «ΓßπΓßΓó¿¿ í½«¬¿α«óá¡¿∩, á »α¿ Ñú«
  194. ¡á½¿τ¿¿ -- 1/4 ¿ 1/6 í¿Γá ß««ΓóÑΓßΓóÑ¡¡« ñ½∩ í½«¬«ó ñ½¿¡ 2 ¿ 3.
  195. ü«½∞Φπε ßΓѻѡ∞ ßªáΓ¿∩, ¡Ñ ºáó¿ß∩Θπε «Γ í½¿º«ßΓ¿ º¡áτÑ¡¿⌐ óÑα«∩Γ¡«ßΓ¿
  196. ß¿¼ó«½«ó ¬ ßΓѻѡ∩¼ 1/2, ¼«ªÑΓ ñáΓ∞ Γᬠ¡áºδóáѼ«Ñ áα¿Σ¼ÑΓ¿τÑ߬«Ñ
  197. ¬«ñ¿α«óá¡¿Ñ.
  198.  
  199.         Çα¿Σ¼ÑΓ¿τÑ߬«Ñ ¬«ñ¿α«óá¡¿Ñ (»«ñα«í¡«Ñ «»¿ßá¡¿Ñ ß¼. [Witten])
  200. ∩ó½∩ÑΓß∩ ¼ÑΓ«ñ«¼, »«ºó«½∩εΘ¿¼ π»á¬«óδóáΓ∞ ß¿¼ó«½δ óσ«ñ¡«ú« á½Σáó¿Γá íѺ
  201. »«ΓÑα∞ »α¿ πß½«ó¿¿, τΓ« ¿ºóÑßΓ¡« αáß»αÑñѽѡ¿Ñ τáßëàφΓ¿σ ß¿¼ó«½«ó.
  202. è«¡µÑ»µ¿∩ ¼ÑΓ«ñá ó«ßσ«ñ¿Γ ¬ αáí«Γá¼ ¥½¿áßá ó 60-x ú«ñáσ (ß¼. [Abramson,
  203. 60-61]). é ñá½∞¡Ñ⌐ΦѼ ¼ÑΓ«ñ íδ½ αáºó¿Γ ¿ º¡áτ¿Γѽ∞¡« πß«óÑαΦÑ¡ßΓó«óá¡
  204. ([Rissanen]).
  205.  
  206.     Çα¿Σ¼ÑΓ¿τÑ߬«Ñ ¬«ñ¿α«óá¡¿Ñ ∩ó½∩ÑΓß∩ «»Γ¿¼á½∞¡δ¼, ñ«ßΓ¿úá∩
  207. ΓÑ«αÑΓ¿τÑ߬«⌐ úαá¡¿µδ ßΓѻѡ¿ ßªáΓ¿∩, -- φ¡Γα«»¿¿ óσ«ñ¡«ú« »«Γ«¬á.
  208.  
  209.     ÆÑ¬ßΓ, ßªáΓδ⌐ áα¿Σ¼ÑΓ¿τÑ߬¿¼ ¬«ñÑα«¼, αáßß¼áΓα¿óáÑΓß∩ ¬á¬
  210. ¡Ñ¬«Γ«αá∩ ñó«¿τ¡á∩ ñα«í∞ ¿º ¿¡ΓÑαóá½á [0, 1). ÉѺπ½∞ΓáΓ ßªáΓ¿∩ ¼«ª¡«
  211. »αÑñßΓáó¿Γ∞ ¬á¬ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ñó«¿τ¡δσ µ¿Σα ¿º ºá»¿ß¿ φΓ«⌐ ñα«í¿.
  212. êñÑ∩ ¼ÑΓ«ñá ß«ßΓ«¿Γ ó ß½ÑñπεΘѼ: ¿ßσ«ñ¡δ⌐ ΓѬßΓ αáßß¼áΓα¿óáÑΓß∩ ¬á¬
  213. ºá»¿ß∞ φΓ«⌐ ñα«í¿, úñÑ ¬áªñδ⌐ óσ«ñ¡«⌐ ß¿¼ó«½ ∩ó½∩ÑΓß∩ "µ¿Σα«⌐" ß óÑß«¼,
  214. »α«»«αµ¿«¡á½∞¡δ¼ óÑα«∩Γ¡«ßΓ¿ Ñú« »«∩ó½Ñ¡¿∩. Å«∩ß¡¿¼ αáí«Γπ ¼ÑΓ«ñá ¡á
  215. »α¿¼ÑαÑ.
  216.  
  217.     ÅπßΓ∞ á½Σáó¿Γ ß«ßΓ«¿Γ ¿º ñóπσ ß¿¼ó«½«ó: a ¿ b ß óÑα«∩Γ¡«ßΓ∩¼¿
  218. ß««ΓóÑΓßΓóÑ¡¡« 3/4 ¿ 1/4. èᬠπªÑ ú«ó«α¿½«ß∞ óδΦÑ, ¬«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á
  219. ¡Ñ ¼«ªÑΓ π»á¬«óδóáΓ∞ ß½«óá ó ñá¡¡«¼ á½Σáó¿ΓÑ.
  220.  
  221.     Éáßß¼«Γα¿¼ («Γ¬αδΓδ⌐ ß»αáóá) ¿¡ΓÑαóá½ [0, 1). Éẫí∞Ѽ Ñú« ¡á
  222. τáßΓ¿, ñ½¿¡á ¬«Γ«αδσ »α«»«αµ¿«¡á½∞¡á óÑα«∩Γ¡«ßΓ∩¼ ß¿¼ó«½«ó.  é ¡áΦѼ
  223. ß½πτáÑ φΓ« [0, 3/4) ¿ [3/4, 1).  æπΓ∞ á½ú«α¿Γ¼á ó ß½ÑñπεΘѼ: ¬áªñ«¼π
  224. ß½«óπ ó« óσ«ñ¡«¼ á½Σáó¿ΓÑ ß««ΓóÑΓßΓóπÑΓ ¡Ñ¬«Γ«αδ⌐ »«ñ¿¡ΓÑαóá½ ¿º [0,1).
  225. ÅπßΓ«¼π ß½«óπ ß««ΓóÑΓßΓóπÑΓ óÑß∞ ¿¡ΓÑαóá½ [0, 1). Å«ß½Ñ »«½πτÑ¡¿∩
  226. ¬áªñ«ú« »«ß½ÑñπεΘÑú« ß¿¼ó«½á áα¿Σ¼ÑΓ¿τÑ߬¿⌐ ¬«ñÑα π¼Ñ¡∞ΦáÑΓ ¿¡ΓÑαóá½,
  227. óδí¿αá∩ Γπ Ñú« τáßΓ∞, ¬«Γ«αá∩ ß««ΓóÑΓßΓóπÑΓ ó¡«ó∞ »«ßΓπ»¿óΦѼπ ß¿¼ó«½π.
  228. è«ñ«¼ µÑ»«τ¬¿ ∩ó½∩ÑΓß∩ ¿¡ΓÑαóá½, óδñѽѡ¡δ⌐ »«ß½Ñ «íαáí«Γ¬¿ óßÑσ ÑÑ
  229. ß¿¼ó«½«ó, Γ«τ¡ÑÑ, ñó«¿τ¡á∩ ºá»¿ß∞ ½εí«⌐ Γ«τ¬¿ ¿º φΓ«ú« ¿¡ΓÑαóá½á.
  230.  
  231.     Æá¬¿¼ «íαẫ¼, ñ½¿¡á »«½πτÑ¡¡«ú« ¿¡ΓÑαóá½á »α«»«αµ¿«¡á½∞¡á
  232. óÑα«∩Γ¡«ßΓ¿ »«∩ó½Ñ¡¿∩ ¬«ñ¿απѼ«⌐ µÑ»«τ¬¿.
  233.  
  234.     éδ»«½¡¿¼ á½ú«α¿Γ¼ ñ½∩ µÑ»«τ¬¿ "aaba":
  235.  
  236.  ÿáú │ Åα«ß¼«ΓαÑ¡¡á∩  │ ê¡ΓÑαóá½
  237.      │    µÑ»«τ¬á     │
  238. ─────┼────────────────┼──────────────────────────────────────────────
  239.  0.  │  ""            │ [0, 1) = [0, 1)
  240.  1.  │  "a"           │ [0, 3/4) = [0, 0.11)
  241.  2.  │  "aa"          │ [0, 9/16) = [0, 0.1001)
  242.  3.  │  "aab"         │ [27/64, 36/64) = [0.011011, 0.100100)
  243.  4.  │  "aaba"        │ [108/256, 135/256) = [0.01101100, 0.10000111)
  244.  
  245.         é ¬áτÑßΓóÑ ¬«ñá ¼«ª¡« óº∩Γ∞ ½εí«Ñ τ¿ß½« ¿º ¿¡ΓÑαóá½á,
  246. »«½πτÑ¡¡«ú« ¡á ΦáúÑ 4, ¡á»α¿¼Ñα, 0.1.
  247.  
  248.         Çα¿Σ¼ÑΓ¿τÑ߬¿⌐ ñѬ«ñÑα αáí«ΓáÑΓ ß¿¡σα«¡¡« ß ¬«ñÑα«¼: ¡áτáó ß
  249. ¿¡ΓÑαóá½á [0, 1), «¡ »«ß½Ññ«óáΓѽ∞¡« «»αÑñѽ∩ÑΓ ß¿¼ó«½δ óσ«ñ¡«⌐
  250. µÑ»«τ¬¿. é τáßΓ¡«ßΓ¿, ó ¡áΦѼ ß½πτáÑ «¡ ó¡áτá½Ñ αáºñѽ¿Γ
  251. (»α«»«αµ¿«¡á½∞¡« τáßΓ«Γá¼ ß¿¼ó«½«ó) ¿¡ΓÑαóá½ [0, 1) ¡á [0, 0.11) ¿
  252. [0.11, 1).  Å«ß¬«½∞¬π τ¿ß½« 0.0111 (»ÑαÑñá¡¡δ⌐ ¬«ñÑα«¼ ¬«ñ µÑ»«τ¬¿
  253. "aaba") ¡áσ«ñ¿Γß∩ ó »Ñαó«¼ ¿º ¡¿σ, ¼«ª¡« »«½πτ¿Γ∞ »Ñαóδ⌐ ß¿¼ó«½: "a".
  254. çáΓѼ ñѽ¿¼ »Ñαóδ⌐ »«ñ¿¡ΓÑαóá½ [0, 0.11) ¡á [0, 0.1001) ¿ [0.1001,
  255. 0.1100) (»α«»«αµ¿«¡á½∞¡« τáßΓ«Γá¼ ß¿¼ó«½«ó).  Ä»∩Γ∞ óδí¿αáѼ »Ñαóδ⌐,
  256. Γᬠ¬á¬ 0 < 0.0111 < 0.1001.  Åα«ñ«½ªá∩ φëà»α«µÑßß, ¼δ «ñ¡«º¡áτ¡«
  257. ñѬ«ñ¿απѼ óßÑ τÑΓδαÑ ß¿¼ó«½á.  ä½∩ Γ«ú«, τΓ«íδ ñѬ«ñÑα ¼«ú «»αÑñѽ¿Γ∞
  258. ¬«¡Ñµ µÑ»«τ¬¿, ¼δ ¼«ªÑ¼ ½¿í« »ÑαÑñáóáΓ∞ ÑÑ ñ½¿¡π «Γñѽ∞¡«, ½¿í«
  259. ñ«íáó¿Γ∞ ¬ á½Σáó¿Γπ ñ«»«½¡¿Γѽ∞¡δ⌐ ß¿¼ó«½ "¬«¡Ñµ µÑ»«τ¬¿".
  260.  
  261.         Åα¿ αáßß¼«ΓαÑ¡¿¿ φΓ«ú« ¼ÑΓ«ñá ó«º¡¿¬áεΓ ñóÑ »α«í½Ñ¼δ:
  262. ó«-»Ñαóδσ, ¡Ñ«íσ«ñ¿¼á óÑΘÑßΓóÑ¡¡á∩ áα¿Σ¼ÑΓ¿¬á, ó««íΘÑ ú«ó«α∩,
  263. ¡Ñ«úαá¡¿τÑ¡¡«⌐ Γ«τ¡«ßΓ¿, ¿ ó«-óΓ«αδσ, αѺπ½∞ΓáΓ ¬«ñ¿α«óá¡¿∩ ßΓá¡«ó¿Γß∩
  264. ¿ºóÑßΓÑ¡ ½¿Φ∞ »α¿ «¬«¡τá¡¿¿ óσ«ñ¡«ú« »«Γ«¬á.  äá½∞¡Ñ⌐Φ¿Ñ ¿ßß½Ññ«óá¡¿∩,
  265. «ñ¡á¬«, »«¬áºδóáεΓ [Rubin], τΓ« ¼«ª¡« »αá¬Γ¿τÑ߬¿ íѺ »«ΓÑα∞ «í«⌐Γ¿ß∞
  266. µÑ½«τ¿ß½Ñ¡¡«⌐ áα¿Σ¼ÑΓ¿¬«⌐ ¡Ñí«½∞Φ«⌐ Γ«τ¡«ßΓ¿ (16-32 αáºα∩ñá), á ΓᬪÑ
  267. ñ«í¿Γ∞ß∩ ¿¡¬αѼѡΓá½∞¡«⌐ αáí«Γδ á½ú«α¿Γ¼á: µ¿Σαδ ¬«ñá ¼«úπΓ óδñáóáΓ∞ß∩
  268. »«ß½Ññ«óáΓѽ∞¡« »« ¼ÑαÑ τΓÑ¡¿∩ óσ«ñ¡«ú« »«Γ«¬á.
  269.  
  270.  
  271.  
  272. .te 1 .ce î«ñѽ¿ óσ«ñ¡«ú« »«Γ«¬á
  273.  
  274.  
  275.     èᬠú«ó«α¿½«ß∞ óδΦÑ, ¬«ñ¿α«óá¡¿Ñ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ½¿Φ∞ τáßΓ∞
  276. »α«µÑßßá π»á¬«ó¬¿. ìÑ ¼Ñ¡ÑÑ ó᪡« Γ.¡. ¼«ñѽ¿α«óá¡¿Ñ (modelling).  îδ
  277. πªÑ ú«ó«α¿½¿ « Γ«¼, τΓ« áα¿Σ¼ÑΓ¿τÑ߬«Ñ ¬«ñ¿α«óá¡¿Ñ ¿¼ÑÑΓ ¼¿¡¿¼á½∞¡πε
  278. ¿ºíδΓ«τ¡«ßΓ∞ »α¿ ºáñá¡¡«¼ αáß»αÑñѽѡ¿¿. ùπñÑß¡«! -- ó«ß¬½¿¬¡ÑΓ
  279. τ¿ΓáΓѽ∞. ì« «Γ¬πñá íÑαÑΓß∩ φΓ« αáß»αÑñѽѡ¿Ñ? ê « ¬á¬«¼ á½Σáó¿ΓÑ ¿ñÑΓ
  280. αÑτ∞?
  281.  
  282.     ÄΓóÑΓδ ¡á φΓ¿ ó«»α«ßδ ñáÑΓ ¼«ñѽ∞ »«Γ«¬á, »αÑñßΓáó½∩εΘá∩ ß«í«⌐
  283. (ß¼. [Rissanen], [Witten]) ¡Ñ¬«Γ«αδ⌐ ß»«ß«í «»αÑñѽѡ¿∩ αáß»αÑñѽѡ¿∩
  284. óÑα«∩Γ¡«ßΓÑ⌐ »α¿ ¬áªñ«¼ »«ßΓπ»½Ñ¡¿¿ «τÑαÑñ¡«ú« ß¿¼ó«½á. ê¼Ñ¡¡« ¬áªñ«¼,
  285. »«ß¬«½∞¬π ßΓáΓ¿τÑ߬¿Ñ ¼«ñѽ¿ (ó ¬«Γ«αδσ αáß»αÑñѽѡ¿Ñ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩) ó
  286. í«½∞Φ¿¡ßΓóÑ ß½πτáÑó ¡Ñ ñáεΓ ¼á¬ß¿¼á½∞¡«ú« ¬áτÑßΓóá ßªáΓ¿∩. â«αáºñ«
  287. í«½∞Φ¿⌐ ¿¡ΓÑαÑß »αÑñßΓáó½∩εΓ Γᬠ¡áºδóáѼδÑ áñá»Γ¿ó¡δÑ ¼«ñѽ¿,
  288. πτ¿ΓδóáεΘ¿Ñ ΓѬπΘ¿⌐ ¬«¡ΓѬßΓ.  Æá¬¿Ñ ¼«ñѽ¿ »«ºó«½∩εΓ ßΓα«¿Γ∞ íδßΓαδÑ
  289. «ñ¡«»α«σ«ñ¡δÑ á½ú«α¿Γ¼δ ßªáΓ¿∩, ¡Ñ ΓαÑíπεΘ¿Ñ á»α¿«α¡δσ º¡á¡¿⌐ « óσ«ñ¡«¼
  290. »«Γ«¬Ñ ñá¡¡δσ ¿ ßΓα«∩Θ¿Ñ αáßαÑñѽѡ¿Ñ "¡á ½ÑΓπ". éδñѽ∩εΓ ΓᬪѠ¬½áßß
  291. "½«¬á½∞¡« áñá»Γ¿ó¡δσ" á½ú«α¿Γ¼«ó, «ΓñáεΘ¿σ »α¿ »«ßΓα«Ñ¡¿¿ αáß»αÑñѽѡ¿∩
  292. »αÑñ»«τΓÑ¡¿Ñ »«ß½Ññ¡¿¼ »«ßΓπ»¿óΦ¿¼ ß¿¼ó«½á¼.
  293.  
  294.     é«º¼«ª¡δ αẽ¿τ¡δÑ »«ñσ«ñδ ¬ φΓ«⌐ »α«í½Ñ¼Ñ: »α«ßΓÑ⌐Φ¿⌐ ¿º ¡¿σ
  295. -- ßí«α ßΓáΓ¿ßΓ¿¬¿ »«∩ó½Ñ¡¿∩ ¬áªñ«ú« ß¿¼ó«½á ¡Ñºáó¿ß¿¼« «Γ ñαπú¿σ
  296. (¼«ñѽ¿α«óá¡¿Ñ ¿ßΓ«τ¡¿¬«¼ üÑα¡π½½¿: óÑα«∩Γ¡«ßΓ∞ »«∩ó½Ñ¡¿∩ ß¿¼ó«½á ¡Ñ
  297. ºáó¿ß¿Γ «Γ Γ«ú«, ¬á¬¿Ñ ß¿¼ó«½δ óßΓαÑΓ¿½¿ß∞ »ÑαÑñ ¡¿¼). é«º¼«ª¡« ΓᬪÑ
  298. ¿ß»«½∞º«óá¡¿Ñ ¼áᬫó߬«⌐ ¼«ñѽ¿: ßí«α ßΓáΓ¿ßΓ¿¬¿ »«∩ó½Ñ¡¿∩ ¬áªñ«ú«
  299. ß¿¼ó«½á ß πτÑΓ«¼ ¡Ñ¬«Γ«α«ú« ¬«½¿τÑßΓóá »αÑñδñπΘ¿σ ß¿¼ó«½«ó (ó
  300. ¼áᬫó߬«¼ ¿ßΓ«τ¡¿¬Ñ »Ñαó«ú« »«α∩ñ¬á óÑα«∩Γ¡«ßΓ∞ »«∩ó½Ñ¡¿∩ ß¿¼ó«½á
  301. ºáó¿ß¿Γ Γ«½∞¬« «Γ «ñ¡«ú« »«ß½Ññ¡Ñú« »«½πτÑ¡¡«ú« ß¿¼ó«½á, ¿ Γ.ñ.).
  302. îáᬫó߬¿Ñ ¼«ñѽ¿ ¼«úπΓ ñáóáΓ∞ í«½ÑÑ Γ«τ¡πε ¬áαΓ¿¡π ¿ßΓ«τ¡¿¬á, «ñ¡á¬«
  303. τ¿ß½« ß«ßΓ«∩¡¿⌐ ó ¡¿σ í«½∞ΦÑ, ß««ΓóÑΓßΓóÑ¡¡« í«½∞ΦÑ «í∞Ѽ σαá¡¿¼δσ
  304. Γáí½¿µ τáßΓ«Γ. èα«¼Ñ Γ«ú«, »α¿ ¿ß»«½∞º«óá¡¿¿ ¬«ñ¿α«óá¡¿∩ òáΣΣ¼Ñ¡á «¡¿
  305. ¼«úπΓ ñáªÑ πσπñΦ¿Γ∞ ¬áτÑßΓó« ßªáΓ¿∩, »«ß¬«½∞¬π »«α«ªñáѼδÑ ¿¼¿
  306. óÑα«∩Γ¡«ßΓ¿ «íδτ¡« σπªÑ »α¿í½¿ªáεΓß∩ ßΓѻѡ∩¼¿ 1/2.
  307.  
  308.     â«ó«α∩ « ¼«ñѽ∩σ óσ«ñ¡«ú« »«Γ«¬á ¿ áñá»Γ¿ó¡δσ á½ú«α¿Γ¼áσ
  309. ߪáΓ¿∩, ¡Ñ½∞º∩ ¡Ñ π»«¼∩¡πΓ∞ »α«ßΓ«⌐ ¿ ñ«ßΓáΓ«τ¡« φΣΣÑ¬Γ¿ó¡δ⌐ ¼ÑΓ«ñ
  310. ¬«ñ¿α«óá¡¿∩ ¿ßΓ«τ¡¿¬á ß ¡Ñ¿ºóÑßΓ¡δ¼ αáß»αÑñѽѡ¿Ñ¼ τáßΓ«Γ, ¿ºóÑßΓ¡δ⌐
  311. ¬á¬ ßªáΓ¿Ñ »α¿ »«¼«Θ¿ ßΓ«»¬¿ ¬¡¿ú. îÑΓ«ñ íδ½ ó»ÑαóδÑ «Γ¬αδΓ ¿
  312. ¿ßß½Ññ«óá¡ É∩í¬« ó 1980 ú. (ß¼. [É∩í¬«]), á ºáΓѼ »ÑαÑ«Γ¬αδΓ üÑ¡Γ½¿,
  313. æ½Ñ⌐ΓÑα«¼, Æáα∞∩¡«¼ ¿ éÑ¿ ó 1986 ú. (ß¼. [Bentley]).
  314.  
  315.     êñÑ∩ ¼ÑΓ«ñá ß«ßΓ«¿Γ ó ß½ÑñπεΘѼ: »πßΓ∞ á½Σáó¿Γ ¿ßΓ«τ¡¿¬á
  316. ß«ßΓ«¿Γ ¿º N ß¿¼ó«½«ó ß ¡«¼ÑαἿ 1, 2, ..., N. è«ñÑα σαá¡¿Γ ß»¿ß«¬
  317. ß¿¼ó«½«ó, »αÑñßΓáó½∩εΘ¿⌐ ß«í«⌐ ¡Ñ¬«Γ«απε »ÑαÑßΓá¡«ó¬π á½Σáó¿Γá. Åα¿
  318. »«ßΓπ»½Ñ¡¿¿ ¡á óσ«ñ ß¿¼ó«½á c, ¿¼ÑεΘÑú« ó φΓ«ß ß»¿ß¬Ñ ¡«¼Ñα i, ¬«ñÑα
  319. »ÑαÑñáÑΓ ¬«ñ ¡«¼Ñαá i (¡á»α¿¼Ñα, ¼«¡«Γ«¡¡δ⌐ ¬«ñ: [èα¿τÑó߬¿⌐],
  320. ßΓα.69-73). ¥áΓѼ ¬«ñÑα »ÑαÑßΓáó½∩ÑΓ ß¿¼ó«½ c ó ¡áτὫ ß»¿ß¬á,
  321. πóѽ¿τ¿óá∩ ¡á 1 ¡«¼Ñαá óßÑσ ß¿¼ó«½«ó, ßΓ«∩Θ¿σ »ÑαÑñ c. Æá¬¿¼ «íαẫ¼,
  322. í«½ÑÑ "»«»π½∩α¡δÑ" ß¿¼ó«½δ íπñπΓ Γ∩ú«ΓÑΓ∞ ¬ ¡áτá½π ß»¿ß¬á ¿ ¿¼ÑΓ∞ í«½ÑÑ
  323. ¬«α«Γ¬¿Ñ ¬«ñδ.
  324.  
  325.  
  326.  
  327. .te 1 .ce äóπσßΓπ»Ñ¡τáΓ«Ñ ¬«ñ¿α«óá¡¿Ñ. Ç½ú«α¿Γ¼ ïѼ»Ñ½∩-ç¿óá
  328.  
  329.  
  330.     éßÑ αáßß¼«ΓαÑ¡¡δÑ óδΦÑ ¼ÑΓ«ñδ ¿ ¼«ñѽ¿ ¬«ñ¿α«óá¡¿∩
  331. αáßß¼áΓα¿ó὿ ó ¬áτÑßΓóÑ óσ«ñ¡δσ ñá¡¡δσ µÑ»«τ¬¿ ß¿¼ó«½«ó (ΓѬßΓδ) ó
  332. ¡Ñ¬«Γ«α«¼ ¬«¡Ñτ¡«¼ á½Σáó¿ΓÑ. Åα¿ φΓ«¼ «ßΓáóá½ß∩ «Γ¬αδΓδ¼ ó«»α«ß « ßó∩º¿
  333. φΓ«ú« óσ«ñ¡«ú« á½Σáó¿Γá ¬«ñÑαá ß ñá¡¡δ¼¿, »«ñ½ÑªáΘ¿¼¿ π»á¬«ó¬Ñ («íδτ¡«
  334. ΓᬪѠ»αÑñßΓáó½Ñ¡¡δ¼¿ ó ó¿ñÑ µÑ»«τѬ ó á½Σáó¿ΓÑ, «íδτ¡« ß«ßΓ«∩ΘѼ ¿º
  335. 256 ß¿¼ó«½«ó-íá⌐Γ).
  336.  
  337.     é »α«ßΓÑ⌐ΦѼ ß½πτáÑ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ó ¬áτÑßΓóÑ óσ«ñ¡«ú«
  338. á½Σáó¿Γá ¬«ñÑαá ¿¼Ñ¡¡« φΓ¿ ß¿¼ó«½δ (íá⌐Γδ) óσ«ñ¡«ú« »«Γ«¬á. ê¼Ñ¡¡« Γá¬
  339. αáí«ΓáÑΓ ¼ÑΓ«ñ squashing »α«úαá¼¼δ PKPAK (¿ß»«½∞º«óá¡« ßΓáΓ¿τÑ߬«Ñ
  340. ¬«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á, ñóπσ»α«σ«ñ¡δ⌐ á½ú«α¿Γ¼). æΓѻѡ∞ ßªáΓ¿∩ »α¿ φΓ«¼
  341. «Γ¡«ß¿Γѽ∞¡« ¡Ñóѽ¿¬á -- »«α∩ñ¬á 50% ñ½∩ ΓѬßΓ«óδσ Σá⌐½«ó.
  342.  
  343.     â«αáºñ« í«½∞ΦÑ⌐ ßΓѻѡ¿ ßªáΓ¿∩ ¼«ª¡« ñ«í¿Γ∞ß∩ »α¿ óδñѽѡ¿¿ ¿º
  344. óσ«ñ¡«ú« »«Γ«¬á »«óΓ«α∩εΘ¿σß∩ µÑ»«τѬ ¿ ¬«ñ¿α«óá¡¿∩ ßß佫¬ ¡á φΓ¿
  345. µÑ»«τ¬¿.
  346.  
  347.     ¥Γ«Γ ¼ÑΓ«ñ, « ¬«Γ«α«¼ ¿ »«⌐ñÑΓ ñá½ÑÑ αÑτ∞, »α¿¡áñ½Ñª¿Γ ïѼ»Ñ½ε
  348. ¿ ç¿óπ (ß¼. [Lempel), ¿ «íδτ¡« ¡áºδóáÑΓß∩ LZ-compression. æπΓ∞ Ñú« ó
  349. ß½ÑñπεΘѼ: π»á¬«óΘ¿¬ »«ßΓ«∩¡¡« σαá¡¿Γ ¡Ñ¬«Γ«α«Ñ ¬«½¿τÑßΓó« »«ß½Ññ¡¿σ
  350. «íαáí«Γá¡¡δσ ß¿¼ó«½«ó ó íπΣÑαÑ.  Å« ¼ÑαÑ «íαáí«Γ¬¿ óσ«ñ¡«ú« »«Γ«¬á
  351. ó¡«ó∞ »«ßΓπ»¿óΦ¿Ñ ß¿¼ó«½δ »«»áñáεΓ ó ¬«¡Ñµ íπΣÑαá, ßñó¿úá∩
  352. »αÑñΦÑßΓóπεΘ¿Ñ ß¿¼ó«½δ ¿ óδΓÑß¡∩∩ ßá¼δÑ ßΓáαδÑ.  ÉẼÑαδ φΓ«ú« íπΣÑαá,
  353. ¡áºδóáѼ«ú« ΓᬪѠ߬«½∞º∩Θ¿¼ ß½«óáαѼ (sliding dictionary), óáα∞¿απεΓß∩
  354. ó αạδσ αÑ὿ºáµ¿∩σ; φ¬ß»Ñα¿¼Ñ¡Γá½∞¡δ¼ »πΓѼ πñὫß∞ πßΓá¡«ó¿Γ∞, τΓ«
  355. »α«úαá¼¼δ LHarc 1.13 ¿ß»«½∞ºπeΓ 4-¬¿½«íá⌐Γ¡δ⌐ íπΣÑα, LHA 2.13 ¿ PKZIP
  356. 1.10 -- 8-¬¿½«íá⌐Γ¡δ⌐, á ARJ 2.20 -- 16-¬¿½«íá⌐Γ¡δ⌐.
  357.  
  358.     Ç½ú«α¿Γ¼ óδñѽ∩ÑΓ (»πΓѼ »«¿ß¬á ó ß½«óáαÑ) ßá¼πε ñ½¿¡¡πε
  359. ¡áτá½∞¡πε »«ñßΓ᫬π óσ«ñ¡«ú« »«Γ«¬á, ß«ó»áñáεΘπε ß «ñ¡«⌐ ¿º »«ñßΓ᫬ ó
  360. ß½«óáαÑ, ¿ óδñáÑΓ ¡á óδσ«ñ »áαπ (length, distance), úñÑ length -- ñ½¿¡á
  361. ¡á⌐ñÑ¡¡«⌐ ó ß½«óáαÑ »«ñßΓ᫬¿, á distance -- αáßßΓ«∩¡¿Ñ «Γ ¡ÑÑ ñ«
  362. óσ«ñ¡«⌐ »«ñßΓ᫬¿ (Γ« ÑßΓ∞ Σá¬Γ¿τÑ߬¿ ¿¡ñѬߠ»«ñßΓ᫬¿ ó íπΣÑαÑ,
  363. óδτΓÑ¡¡δ⌐ ¿º Ñú« αẼÑαá). é ß½πτáÑ, Ñß½¿ Γá¬á∩ »«ñßΓα«¬á ¡Ñ ¡á⌐ñÑ¡á, ó
  364. óδσ«ñ¡«⌐ »«Γ«¬ »α«ßΓ« ¬«»¿απÑΓß∩ «τÑαÑñ¡«⌐ ß¿¼ó«½ óσ«ñ¡«ú« »«Γ«¬á.
  365.  
  366.     é »Ñαó«¡áτá½∞¡«⌐ óÑαß¿¿ á½ú«α¿¼á »αÑñ½áúὫß∞ ¿ß»«½∞º«óáΓ∞
  367. »α«ßΓÑ⌐Φ¿⌐ »«¿ß¬ »« óßѼπ ß½«óáαε. éαѼ∩ ßªáΓ¿∩ »α¿ Γᬫ⌐ αÑ὿ºáµ¿¿
  368. í佫 »α«»«αµ¿«¡á½∞¡« »α«¿ºóÑñÑ¡¿ε ñ½¿¡δ óσ«ñ¡«ú« »«Γ«¬á ¡á αẼÑα
  369. íπΣÑαá, τΓ« ¡Ñ»α¿ú«ñ¡« ñ½∩ »αá¬Γ¿τÑ߬«ú« ¿ß»«½∞º«óá¡¿∩. Äñ¡á¬«, ó
  370. ñá½∞¡Ñ⌐ΦѼ í佫 »αÑñ½«ªÑ¡« ¿ß»«½∞φ«óáΓ∞ ñó«¿τ¡«Ñ ñÑαÑó« ñ½∩ íδßΓα«ú«
  371. »«¿ß¬á ó ß½«óáαÑ [Bell], τΓ« »«φ󫽿½« ¡á »«α∩ñ«¬ »«ñ¡∩Γ∞ ß¬«α«ßΓ∞
  372. αáí«Γδ á½ú«α¿Γ¼á.
  373.  
  374.     Æá¬¿¼ «íαẫ¼, á½ú«α¿Γ¼ ïѼ»Ñ½∩-ç¿óá »αÑ«íαáºπÑΓ «ñ¿¡ »«Γ«¬
  375. ¿ßσ«ñ¡δσ ß¿¼ó«½«ó ó ñóá »áαώѽ∞¡δσ »«Γ«¬á length ¿ distance.
  376. ÄτÑó¿ñ¡«, τΓ« φΓ¿ »«Γ«¬¿ ∩ó½∩εΓß∩ »«Γ«¬á¼¿ ß¿¼ó«½«ó ó ¡«óδσ á½Σáó¿Γáσ L
  377. ¿ D, ¿ ¬ ¡¿¼ ¼«ª¡« »α¿¼Ñ¡¿Γ∞ «ñ¿¡ ¿º π»«¼¿¡áóΦ¿σß∩ óδΦÑ ¼ÑΓ«ñ«ó (RLE,
  378. ¬«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á, áα¿Σ¼ÑΓ¿τÑ߬«Ñ ¬«ñ¿α«óá¡¿Ñ).  Æá¬ ¼δ »α¿σ«ñ¿¼ ¬
  379. ßσѼѠñóπσßΓπ»Ñ¡τáΓ«ú« ¬«ñ¿α«óá¡¿∩, ¡á¿í«½ÑÑ φΣΣÑ¬Γ¿ó¡«⌐ ¿º »αá¬Γ¿τÑ߬¿
  380. ¿ß»«½∞ºπѼδσ ó ¡áßΓ«∩ΘÑÑ óαѼ∩ (¿, ó τáßΓ¡«ßΓ¿, ¿ß»«½∞º«óá¡¡«⌐
  381. áóΓ«α«¼). Åα¿ αÑ὿ºáµ¿¿ φΓ«ú« ¼ÑΓ«ñá ¡Ñ«íσ«ñ¿¼« ñ«í¿Γ∞ß∩
  382. ß«ú½áß«óá¡¡«ú« óδó«ñá «í«¿σ »«Γ«¬«ó ó «ñ¿¡ Σá⌐½. ¥Γá »α«í½Ñ¼á «íδτ¡«
  383. αÑΦáÑΓß∩ »πΓѼ »««τÑαÑñ¡«⌐ φỿ߿ ¬«ñ«ó ß¿¼ó«½«ó ¿º «í«¿σ »«Γ«¬«ó.
  384.  
  385.     æ½ÑñπÑΓ ΓᬪѠ«Γ¼ÑΓ¿Γ∞ Φ¿α«¬« ¿ºóÑßΓ¡δ⌐ á½ú«α¿Γ¼
  386. ïѼ»Ñ½∩-ç¿óá-éѽτá (Lempel-Ziv-Welch compression, LZW).  Ç½ú«α¿Γ¼
  387. «Γ½¿τáεΓ óδß«¬á∩ ß¬«α«ßΓ∞ αáí«Γδ ¬á¬ »α¿ π»á¬«ó¬Ñ, Γᬠ¿ »α¿
  388. αá߻ᬫó¬Ñ, ñ«ßΓáΓ«τ¡« ß¬α«¼¡δÑ ΓαÑí«óá¡¿∩ ¬ »á¼∩Γ¿ ¿ »α«ßΓá∩
  389. á»»áαáΓ¡á∩ αÑ὿ºáµ¿∩. ìÑñ«ßΓáΓ«¬ -- ¡¿º¬á∩ ßΓѻѡ∞ ßªáΓ¿∩ »« ßαáó¡Ñ¡¿ε
  390. ß« ßσѼ«⌐ ñóπσßΓπ»Ñ¡τáΓ«ú« ¬«ñ¿α«óá¡¿∩. èαáΓ¬« «»¿ΦѼ á½ú«α¿Γ¼. ü«½ÑÑ
  391. »«ñα«í¡δÑ ßóÑñÑ¡¿∩ ß¼. [Welch].
  392.  
  393.     æ«ºñáñ¿¼ ß½«óáα∞, σαá¡∩Θ¿⌐ ßΓ᫬¿ ΓѬßΓá ¿ ß«ñÑαªáΘ¿⌐ »«α∩ñ¬á
  394. 2-4-8 Γδß∩τ »α«¡π¼Ñα«óá¡¡δσ ú¡Ñºñ. çỿΦѼ ó »ÑαóδÑ 256 ú¡Ñºñ ßΓ᫬¿,
  395. ß«ßΓ«∩Θ¿Ñ ¿º «ñ¡«ú« ß¿¼ó«½á, ¡«¼Ñα ¬«Γ«α«ú« αáóÑ¡ ¡«¼Ñαπ ú¡Ñºñá.
  396. ǽú«α¿Γ¼ »α«ß¼áΓα¿óáÑΓ óσ«ñ¡«⌐ »«Γ«¬, αáºí¿óá∩ Ñú« ¡á »«ñßΓ᫬¿ ¿
  397. ñ«íáó½∩∩ ¡«óδÑ ú¡Ñºñá ó ¬«¡Ñµ ß½«óáα∩.
  398.  
  399.     Åα«τ¿ΓáѼ ¡Ñ߬«½∞¬« ß¿¼ó«½«ó ó ßΓ᫬π s ¿ ¡á⌐ñѼ ó ß½«óáαÑ
  400. ßΓ᫬π t -- ßá¼δ⌐ ñ½¿¡¡δ⌐ »αÑΣ¿¬ß s. ÅπßΓ∞ «¡ ¡á⌐ñÑ¡ ó ú¡ÑºñÑ ß ¡«¼Ñα«¼
  401. n.  éδóÑñѼ τ¿ß½« n ó óδσ«ñ¡«⌐ »«Γ«¬, »ÑαѼÑßΓ¿¼ π¬áºáΓѽ∞ óσ«ñ¡«ú«
  402. »«Γ«¬á ¡á length (t) ß¿¼ó«½«ó ó»ÑαÑñ ¿ ñ«íáó¿¼ ó ß½«óáα∞ ¡«ó«Ñ ú¡Ñºñ«,
  403. ß«ñÑαªáΘÑÑ ßΓ᫬π t+c, úñÑ ß -- «τÑαÑñ¡«⌐ ß¿¼ó«½ ¡á óσ«ñÑ (ßαáºπ »«ß½Ñ
  404. t). Ç½ú«α¿Γ¼ »αÑ«íαáºπÑΓ »«Γ«¬ ß¿¼ó«½«ó ¡á óσ«ñÑ ó »«Γ«¬ ¿¡ñѬ߫ó ∩τÑѬ
  405. ß½«óáα∩ ¡á óδσ«ñÑ. Åα¿ αẼÑαÑ ß½«óáα∩ ó 4096 ú¡Ñºñ ¼«ª¡« »ÑαÑñáóáΓ∞ 12
  406. í¿Γ ¡á ¬áªñδ⌐ ¿¡ñѬß.
  407.  
  408.     èáªñá∩ αáß»«º¡á¡¡á∩ µÑ»«τ¬á ñ«íáó½∩ÑΓ ó ß½«óáα∞ «ñ¡« ú¡Ñºñ«.
  409. Åα¿ »ÑαÑ»«½¡Ñ¡¿¿ ß½«óáα∩ π»á¬«óΘ¿¬ ¼«ªÑΓ ½¿í« »αѬαáΓ¿Γ∞ Ñú«
  410. ºá»«½¡Ñ¡¿Ñ, ½¿í« «τ¿ßΓ¿Γ∞ (»«½¡«ßΓ∞ε ¿½¿ τáßΓ¿τ¡«).
  411.  
  412.     Åα¿ »αá¬Γ¿τÑ߬«⌐ αÑ὿ºáµ¿¿ φΓ«ú« á½ú«α¿Γ¼á ß½ÑñπÑΓ πτÑßΓ∞, τΓ«
  413. ½εí«Ñ ú¡Ñºñ« ß½«óáα∩, ¬α«¼Ñ ßá¼δσ »Ñαóδσ, ß«ñÑαªáΘ¿σ «ñ¡«ß¿¼ó«½∞¡δÑ
  414. µÑ»«τ¬¿, σαá¡¿Γ ¬«»¿ε ¡Ñ¬«Γ«α«ú« ñ¡πú«ú« ú¡Ñºñá, ¬ ¬«Γ«α«⌐ ó ¬«¡Ñµ
  415. »α¿»¿ßá¡ «ñ¿¡ ß¿¼ó«½. éß½ÑñßΓó¿Ñ φΓ«ú« ¼«ª¡« «í«⌐Γ¿ß∞ »α«ßΓ«⌐ ß»¿ß«τ¡«⌐
  416. ßΓαπ¬Γπα«⌐ ß «ñ¡«⌐ ßó∩º∞ε.
  417.  
  418.  
  419.  
  420. .te 1 .ce Åα«Ñ¬Γ¿α«óá¡¿Ñ. êß»«½∞º«óá¡¡δÑ á½ú«α¿Γ¼δ
  421.  
  422.  
  423.     ÅÑαÑ⌐ñѼ ΓÑ»Ñα∞ ¬ «»¿ßá¡¿ε á½ú«α¿Γ¼«ó, ¿ß»«½∞º«óá¡¡δσ ó ¡áΦÑ⌐
  424. αÑ὿ºáµ¿¿. ì« ß¡áτá½á -- ¡Ñ߬«½∞¬« ß½«ó « µÑ½∩σ, »«ßΓáó½Ñ¡¡δσ »α¿
  425. αáºαáí«Γ¬Ñ ¿ «»αÑñѽ¿óΦ¿σ »α¿¡∩ΓδÑ αÑΦÑ¡¿∩.
  426.  
  427.     ÅαѪñÑ óßÑú«, π»á¬«óΦ¿¬ αáºαáíáΓδóá½ß∩ ß µÑ½∞ε óßΓαá¿óá¡¿∩ Ñú«
  428. ó »α«úαá¼¼δ »«½∞º«óáΓѽ∩. Å«φΓ«¼π ¡Ñ »«ΓαÑí«óá½áß∞ αáºαáí«Γ¬á
  429. ߻ѵ¿á½∞¡«ú« Σ«α¼áΓá áασ¿ó¡«ú« Σá⌐½á. ä«ßΓáΓ«τ¡« ½¿Φ∞ »αÑíαẫóáΓѽ∩
  430. "Σá⌐½ ó Σá⌐½" (á¡á½«ú¿τ¡« »α«úαἼѠcompress ó ß¿ßΓѼѠUNIX). äá½ÑÑ,
  431. ¡á¬½áñδó὿ß∞ ñ«ßΓáΓ«τ¡« ªÑßΓ¬¿Ñ «úαá¡¿τÑ¡¿∩ ¡á ¿ß»«½∞ºπѼπε »á¼∩Γ∞:
  432. αÑ὿º«óá¡¡δ⌐ á½ú«α¿Γ¼ ¿ß»«½∞ºπÑΓ 44K ñ½∩ π»á¬«ó¬¿ ¿ óßÑú« 12K ñ½∩
  433. αá߻ᬫ󬿠(¡Ñ ßτ¿Γá∩ «í∞Ѽᠬ«ñá, «ñ¡á¬« «¡ Γ«ªÑ ¡Ñº¡áτ¿Γѽѡ), ó Γ«
  434. óαѼ∩ ¬á¬ PKZIP ΓαÑíπÑΓ 90K ¿ 70K ß««ΓóÑΓßΓóÑ¡¡«, ARJ -- 275K ¿ 160K).
  435. äá½ÑÑ, ¡Ñ«íσ«ñ¿¼á óδß«¬á∩ ß¬«α«ßΓ∞ αá߻ᬫó¬¿; ¡á ß¬«α«ßΓ∞ ªÑ π»á¬«ó¬¿
  436. ¡á¬½áñδóáεΓß∩ í«½ÑÑ ¼∩ú¬¿Ñ «úαá¡¿τÑ¡¿∩.
  437.  
  438.     êßσ«ñ∩ ¿º φΓ«ú«, íδ½ ¿ß»«½∞º«óá¡ á½ú«α¿Γ¼ ïѼ»Ñ½∩-ç¿óá ß
  439. αẼÑα«¼ ß¬«½∞º∩ΘÑú« ß½«óáα∩ 4 ¬¿½«íá⌐Γá, τΓ« »«ºó«½¿½« ¼¿¡¿¼¿º¿α«óáΓ∞
  440. ΓαÑí«óá¡¿∩ ¬ »á¼∩Γ¿ íѺ ßπΘÑßΓóÑ¡¡δσ »«ΓÑα∞ ¡á ßΓѻѡ¿ ßªáΓ¿∩.  ä½∩
  441. ¬«ñ¿α«óá¡¿∩ ñ½¿¡ ¿ αáßßΓ«∩¡¿⌐ ¿ß»«½∞º«óὫß∞ ßΓáΓ¿τÑ߬«Ñ ¬«ñ¿α«óá¡¿Ñ
  442. òáΣΣ¼Ñ¡á ß« ß»Ñµ¿á½∞¡« »«ñ«íαá¡¡δ¼ ¬«ñ«óδ¼ ñÑαÑó«¼, «»Γ¿¼¿º¿α«óá¡¡δ¼
  443. ñ½∩ ΓѬßΓ«óδσ Σá⌐½«ó.  èα«¼Ñ Γ«ú«, íδ½ ¿ß»«½∞º«óá¡ íδßΓαδ⌐
  444. íá⌐Γ-«α¿Ñ¡Γ¿α«óá¡¡δ⌐ á½ú«α¿Γ¼ αá߻ᬫó¬¿, »«ºó«½∩εΘ¿⌐ π¼Ñ¡∞Φ¿Γ∞ τ¿ß½«
  445. »«í¿Γ«óδσ »ÑαÑß佫¬ ¿ ß««ΓóÑΓßΓóÑ¡¡« πóѽ¿τ¿Γ∞ ß¬«α«ßΓ∞ αáí«Γδ.
  446.  
  447.     æΓáΓ¿ßΓ¿¬á, ß«íαá¡¡á∩ »α¿ αáºαáí«Γ¬Ñ »α«úαá¼¼δ, »«¬áºá½á, τΓ«
  448. í«½ÑÑ 97% óßÑσ «í¡áαπªÑ¡¡δσ µÑ»«τѬ ¿¼ÑεΓ ñ½¿¡π, ¡Ñ »αÑó«ßσ«ñ∩Θπε 16
  449. ß¿¼ó«½«ó. ¥Γ« »«ºó«½¿½« íѺ ßπΘÑßΓóÑ¡¡δσ »«ΓÑα∞ ßΓѻѡ¿ ßªáΓ¿∩ «í«⌐Γ¿ß∞
  450. íδßΓαδ¼ ñÑαÑó«¼ ß 16 ½¿ßΓ∞∩¼¿. ûÑ»«τ¬¿ ß ñ½¿¡«⌐ len, úñÑ len >= 16,
  451. ¬«ñ¿α«ó὿ß∞ ¬á¬ µÑ»«τ¬¿ ñ½¿¡δ 16 ß »«ß½ÑñπεΘ¿¼ ñ«»«½¡¿Γѽ∞¡δ¼ íá⌐Γ«¼
  452. "αáßΦ¿αÑ¡¿∩ ñ½¿¡δ" ß« º¡áτÑ¡¿Ñ¼ (len - 16).
  453.  
  454.     äá½ÑÑ, ñ½∩ αáßßΓ«∩¡¿⌐ (distances) µÑ»«τѬ ¬«ñ¿α«ó὿ß∞ ¿σ
  455. ßΓáαΦ¿Ñ íá⌐Γδ, º¡áτÑ¡¿∩ ¬«Γ«αδσ ¡áσ«ñ¿½¿ß∞ ó ñ¿á»áº«¡Ñ [0..15] (óó¿ñπ
  456. αẼÑαá íπΣÑαá 4096 íá⌐Γ). î½áñΦ¿Ñ íá⌐Γδ ¡Ñ ¬«ñ¿α«ó὿ß∞ óó¿ñπ
  457. ßαáó¡¿Γѽ∞¡« ¡Ñí«½∞Φ«ú« "𬽫¡á" αáß»αÑñѽѡ¿∩ τáßΓ«Γ.
  458.  
  459.     Äñ¿¡«τ¡δÑ ß¿¼ó«½δ (µÑ»«τ¬¿ ñ½¿¡δ 1) ¬«ñ¿α«ó὿ß∞ ¬á¬ µÑ»«τ¬¿
  460. ñ½¿¡δ 1 ß »«ß½ÑñπεΘ¿¼ íá⌐Γ«¼, ß«ñÑαªáΘ¿¼ ßá¼ ß¿¼ó«½. æ½ÑñπÑΓ «Γ¼ÑΓ¿Γ∞,
  461. τΓ« µÑ»«τ¬¿ ñ½¿¡δ 2 ¬«ñ¿α«ó὿ß∞ ¿¼Ñ¡¡« ¬á¬ µÑ»«τ¬¿, á ¡Ñ ¬á¬ ñóÑ
  462. «Γñѽ∞¡δÑ ½¿ΓÑαδ. ¥Γ« ñáóὫ ßαÑñ¡¿⌐ óδ¿úαδΦ ó 3 í¿Γá ¡á ß¿¼ó«½: (2 + 8
  463. + 2 + 8) = 20 í¿Γ »α¿ 2 µÑ»«τ¬áσ »« 2 ß¿¼ó«½á ¿ (2 + 4 + 8) = 14 í¿Γ
  464. »α¿ «ñ¡«⌐ ñδπσß¿¼ó«½∞¡«⌐ µÑ»«τ¬Ñ. äá½ÑÑ, ¡Ñí«½∞Φá∩ ¼«ñ¿Σ¿¬áµ¿∩
  465. á½ú«α¿Γ¼á »«¿ß¬á ß«ó»áñáεΘ¿σ »«ñßΓ᫬ »«ºó«½¿½á φΣΣÑ¬Γ¿ó¡« π»á¬«óδóáΓ∞
  466. ßÑα¿¿ »«óΓ«α∩εΘ¿σß∩ µÑ»«τѬ ß¿¼ó«½«ó:  »α¿ »«¿ß¬Ñ ß¿¼ó«½«ó ó íπΣÑαÑ
  467. ¿ß¬«¼á∩ µÑ»«τ¬á ¡Ñ∩ó¡« ñ«óáó½∩½áß∞ ó ¬«¡Ñµ íπΣÑαá:  ¡á»α¿¼Ñα, µÑ»«τ¬á
  468. "abcabcabcabcabc" ¬«ñ¿α«óá½áß∞ ¬á¬ (1, "a"), (1, "b"), (1, "c"), (12,
  469. 3) -- Σá¬Γ¿τÑ߬¿ τÑαѺ «íαáΘÑ¡¿Ñ ¬ ßἫ⌐ ßÑíÑ ß« ßñó¿ú«¼ ¡á 3 ß¿¼ó«½á.
  470.  
  471.  
  472.  
  473. .te 1 .ce ÉÑ὿ºáµ¿∩ ¿ ßΓαπ¬Γπαá »α«úαá¼¼δ
  474.  
  475.  
  476.     æªáΓ¿Ñ óσ«ñ¡«ú« »«Γ«¬á «ßπΘÑßΓó½∩ÑΓß∩ Σπ¡¬µ¿Ñ⌐ SquoPack(),
  477. »«½πτáεΘÑ⌐ ¡á óσ«ñÑ áñαÑßá »«½∞º«óáΓѽ∞߬¿σ Σπ¡¬µ¿⌐ óó«ñá-óδó«ñá.
  478. Äß¡«ó¡«⌐ µ¿¬½ »α«úαá¼¼δ ¼«ªÑΓ íδΓ∞ »αÑñßΓáó½Ñ¡ ß½ÑñπεΘ¿¼ «íαẫ¼:
  479.  
  480.  
  481. SquoPack()    {
  482.     Init (); // init dictionary, trees, and output bit buffer
  483.  
  484.     while (not EOF)    {
  485.         int    length;
  486.         int    distance;
  487.  
  488.         FindMatch (&length, &distance);
  489.         // scan input and find longest string in dictionary
  490.         // which matches with it; record its length and distance
  491.         // from the end of dictionary.
  492.  
  493.         EncodeLength (length);
  494.         EncodeDistance (distance);
  495.  
  496.         UpdateDictionary (length);
  497.         // this discards first 'length' chars
  498.         // from the beginning of dictionary
  499.         // and reads next characters from input
  500.     }
  501.  
  502.     Done (); // output EOF marker and flush output buffers.
  503. }
  504.  
  505.  
  506.     æ½«óáα∞ (dictionary) «íÑß»Ñτ¿óáÑΓ σαá¡Ñ¡¿Ñ 4096 »«ß½Ññ¡¿σ
  507. ßτ¿Γá¡¡δσ ß¿¼ó«½«ó, ñ« 271(=16+255) ó¡«ó∞ »«ßΓπ»¿óΦ¿σ ¡á óσ«ñ ß¿¼ó«½«ó
  508. ¿ íδßΓαδ⌐ »«¿ß¬ »«ñßΓ᫬¿, ß«ó»áñáεΘÑ⌐ ß óσ«ñ¡«⌐. Åα¿ αÑ὿ºáµ¿¿ í佫
  509. ¿ß»«½∞º«óá¡« σÑΦ¿α«óá¡¿Ñ ß αáºαÑΦÑ¡¿Ñ¼ ¬«¡Σ½¿¬Γ«ó »πΓѼ σαá¡Ñ¡¿∩
  510. «ñ¡«ßó∩º¡δσ ß»¿ß¬«ó.
  511.  
  512.     äÑ⌐ßΓó¿Ñ FindMatch αÑ὿º«óá¡« ¡Ñ»«ßαÑñßΓóÑ¡¡« ó Σπ¡¬µ¿¿
  513. SquoPack(); ñÑ⌐ßΓó¿Ñ UpdateDictionary αÑ὿º«óá¡« Σπ¡¬µ¿Ñ⌐ MoveBuf().
  514. è«ñ¿α«óá¡¿Ñ ñ½¿¡ ¿ αáßßΓ«∩¡¿⌐ ¿ óδó«ñ »«½πτÑ¡¡δ󠬫ñ«ó «ßπΘÑßΓó½∩εΓ
  515. ß««ΓóÑΓßΓóÑ¡¡« Σπ¡¬µ¿¿ PutLen() ¿ PutDist(). Ä¡¿, ó ßó«ε «τÑαÑñ∞,
  516. «íαáΘáεΓß∩ ¬ Σπ¡¬µ¿∩¼ PutBits() ¿ PutByte() ñ½∩ »«íá⌐Γ¡«⌐ íπΣÑα¿ºáµ¿¿
  517. óδó«ñ¿¼δσ µÑ»«τѬ í¿Γ. Åα¿¼Ñ¡Ñ¡á ñ¿¡á¼¿τÑ߬á∩ »ÑαÑßΓá¡«ó¬á óÑαΦ¿¡
  518. ñÑαÑóá òáΣΣ¼Ñ¡á »« ¼«ñ¿Σ¿µ¿α«óá¡¡«¼π á½ú«α¿Γ¼π "ßΓ«»¬¿ ¬¡¿ú" (ß¼.
  519. [É∩í¬«]).
  520.  
  521.     Éá߻ᬫóΘ¿¬ »αá¬Γ¿τÑ߬¿ »«½¡«ßΓ∞ε αÑ὿º«óá¡ ¡á
  522. ó ó¿ñÑ «ñ¡«⌐ áßßѼí½Ñα¡«⌐ Σπ¡¬µ¿¿ _SquoUnpack.
  523.  
  524.  
  525.  
  526. .te 1 .ce Åα«Σ¿½¿α«óá¡¿Ñ ¿ «»Γ¿¼¿ºáµ¿∩
  527.  
  528.  
  529.     ÅÑαó«¡áτá½∞¡á∩ óÑαß¿∩ π»á¬«óΘ¿¬á íδ½á ¡á»¿ßá¡á ¿ «Γ½áªÑ¡á
  530. »αá¬Γ¿τÑ߬¿ »«½¡«ßΓ∞ε ¡á ß¿ (αá߻ᬫóΘ¿¬ íδ½ ß ßἫú« ¡áτá½á íδ½
  531. αÑ὿º«óá¡ ¡á áßßѼí½ÑαÑ). Ç¡á½¿º αѺπ½∞ΓáΓ«ó »α«Σ¿½¿α«óá¡¿∩ »«ºó«½¿½
  532. ºá ßτÑΓ «»Γ¿¼¿ºáµ¿¿ Σπ¡¬µ¿⌐ PutLen() ¿ PutDist() ¿ »ÑαÑñѽ¬¿ Σπ¡¬µ¿¿
  533. UpdateHash() ó ¼á¬α«ß π¼Ñ¡∞Φ¿Γ∞ óαѼ∩ ßªáΓ¿∩ »α¿¼Ñα¡« ¡á 18%.  äá½ÑÑ,
  534. ßΓáΓ¿ßΓ¿¬á »«¬áºá½á, τΓ« ßΓ᫬¿ ñ½¿¡«⌐ 2, 3 ¿ 4 ß¿¼ó«½á ß«ßΓáó½∩εΓ
  535. «¬«½« 75% «íΘÑú« ¬«½¿τÑßΓóá (¡Ñ ßτ¿Γá∩ ßΓ᫬ ñ½¿¡δ 1, Γ.Ñ.  «ñ¿¡«τ¡δσ
  536. ß¿¼ó«½«ó).  ÅÑαÑσ«ñ ¬ ñαπú«¼π ¼ÑΓ«ñπ σÑΦ¿α«óá¡¿∩ (»« τÑΓδαѼ »Ñαóδ¼
  537. ß¿¼ó«½á¼) »«ºó«½¿½ ñ«»«½¡¿Γѽ∞¡« πóѽ¿τ¿Γ∞ ß¬«α«ßΓ∞ αáí«Γδ »α«úαá¼¼δ ¿
  538. π¼Ñ¡∞Φ¿Γ∞ ΓαÑí«óá¡¿∩ ¬ »á¼∩Γ¿.  äá½∞¡Ñ⌐Φá∩ «»Γ¿¼¿ºáµ¿∩ ßó∩ºá¡á ß
  539. »ÑαÑ»¿ßδó᡿Ѽ ¬α¿Γ¿τ¡δσ »« óαѼѡ¿ πτáßΓ¬«ó ¬«ñá ¡á ∩ºδ¬ áßßѼí½Ñαá
  540. (¼«ñπ½∞ αá߻ᬫ󬿠íδ½ ¡á»¿ßá¡ ¡á áßßѼí½ÑαÑ ¿º¡áτá½∞¡«).
  541.  
  542.     Åα«Γ«¬«½, ß«ñÑαªáΘ¿⌐ αѺπ½∞ΓáΓδ »α«í¡δσ ºá»π߬«ó »α«úαá¼¼δ,
  543. á ΓᬪѠá ΓᬪѠ«ΓτÑΓ »α«Σ¿½¿α«óΘ¿¬á, »α¿óÑñÑ¡ ó τáßΓ¿ 2.
  544.  
  545.  
  546.  
  547. .te 1 .ce Éπ¬«ó«ñßΓó« »«½∞º«óáΓѽ∩
  548.  
  549.  
  550. 諼»¿½∩µ¿∩ ¿ ßí«α¬á:
  551. ====================
  552.  
  553.     Å«½∞º«óáΓÑ½ε »αÑñ½áúáεΓß∩ ñóÑ Σπ¡¬µ¿¿, »«ºó«½∩εΘ¿Ñ αÑ὿º«óáΓ∞
  554. ß««ΓóÑΓßΓóÑ¡¡« π»á¬«ó¬π ¿ αá߻ᬫó¬π ñó«¿τ¡δσ »«Γ«¬«ó ñá¡¡δσ (Γ.Ñ.,
  555. ߪáΓ¿Ñ »α¿ ¿ß»«½∞º«óá¡¿¿ »«ß½Ññ«óáΓѽ∞¡«ú« óó«ñá-óδó«ñá). Ä»¿ßá¡¿∩
  556. Σπ¡¬µ¿⌐ ¡áσ«ñ∩Γß∩ ó Σá⌐½Ñ squo.h, «»αÑñѽѡ¿∩ -- ó Σá⌐½áσ squo.c,
  557. lzp.asm, lzu.asm. ä½∩ ßí«α¬¿ »α«úαá¼¼δ »½∞º«óáΓѽ∩ ¡Ñ«íσ«ñ¿¼«
  558. á«ñ¬½ετ¿Γ∞ ß««ΓóÑΓßΓóπεΘ¿Ñ «í∞Ñ¬Γ¡δÑ ¼«ñπ½¿ (squo.obj, lzp.obj,
  559. lzu.obj).  ä½∩ ¬«¼»¿½∩µ¿¿ φΓ¿σ «í∞Ñ¬Γ¡δσ ¼«ñπ½Ñ⌐ ¡Ñ«íσ«ñ¿¼δ Σá⌐½δ
  560. style.h, squo.h, squo.c, lz.asi, lzp.asm, lzu.asm.  ÆÑßΓ«óá∩ »α«úαá¼¼á
  561. (»α«ßΓÑ⌐Φ¿⌐ π»áÑ«óΘ¿¬ ñ½∩ Σá⌐½«ó, á¡á½«ú¿τ¡δ⌐ compress) ¡áσ«ñ¿Γß∩ ó
  562. Σá⌐½Ñ squotest.c.
  563.  
  564.     Åα¿ αáºαáí«Γ¬Ñ, «Γ½áñ¬Ñ ¿ ΓÑßΓ¿α«óá¡¿¿ ¿ß»«½∞º«óá½ß∩ ¬«¼»¿½∩Γ«α
  565. Turbo C 2.01, ¼«ñѽ∞ »á¼∩Γ¿ compact. ÅÑαÑ¡«ß »α«úαá¼¼δ ¡á ñαπú«⌐
  566. ß¿-¬«¼»¿½∩Γ«α ñ½∩ MS-DOS ¡Ñ ñ«½ªÑ¡ »αÑñßΓáó½∩Γ∞ ß½«ª¡«ßΓÑ⌐; ñ½∩ ñαπú¿σ
  567. áασ¿ΓѬΓπα, «τÑó¿ñ¡«, »«¡áñ«í¿Γß∩ »ÑαÑ»¿ßδóá¡¿Ñ ¼«ñπ½Ñ⌐ ¡á ∩ºδ¬Ñ
  568. áßßѼí½Ñαá. Å«ß¬«½∞¬π ¿σ «íΩѼ ¡Ñóѽ¿¬, á Σπ¡¬µ¿¿ Γα¿ó¿á½∞¡δ, φΓ« ΓᬪÑ
  569. ¡Ñ ñ«½ª¡« óδºδóáΓ∞ í«½∞Φ¿σ Γαπñ¡«ßΓÑ⌐. é ¡áßΓ«∩ΘÑÑ óαѼ∩ áóΓ«α αáí«ΓáÑΓ
  570. ¡áñ UNIX-¼«í¿½∞¡«⌐ óÑαß¿Ñ⌐ »α«úαá¼¼δ.
  571.  
  572.  
  573. ê¡ΓÑαΣÑ⌐ß ó맮óá:
  574. =================
  575.  
  576. #include "squo.h"
  577.  
  578. extern    int    SquoPack (ReadFunc *reader, WriteFunc *writer);
  579.  
  580. extern    int    SquoUnpack (ReadFunc *reader, WriteFunc *writer);
  581.  
  582.  
  583. 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ:
  584. ======================
  585.  
  586.     ¥¡áτÑ¡¿Ñ 0 «í«º¡áτáÑΓ πß»ÑΦ¡«Ñ ºáóÑαΦÑ¡¿Ñ, 1 -- ¡Ñπß»ÑΦ¡«Ñ.
  587.  
  588.  
  589. Åáαá¼ÑΓαδ:
  590. ==========
  591.  
  592.     Åáαá¼ÑΓαδ reader ¿ writer -- ß««ΓóÑΓßΓóÑ¡¡« π¬áºáΓѽ¿ ¡á
  593. Σπ¡¬µ¿¿ óó«ñá ¿ óδó«ñá, «»αÑñѽ∩ѼδÑ »«½∞º«óáΓѽѼ. ä½∩ Σπ¡¬µ¿¿
  594. SquoPack, ¡á»α¿¼Ñα, reader ñ«½ªÑ¡ »«ßΓáó½∩Γ∞ ¡Ñπ»á¬«óá¡¡δÑ ñá¡¡δÑ
  595. (߬áªÑ¼, »ÑαÑñáóáΓ∞ ¿σ ¿º ¼áßß¿óá ó »á¼∩Γ¿), á Σπ¡¬µ¿¿ writer φΓ¿
  596. ñá¡¡δÑ íπñπΓ »ÑαÑñá¡δ πªÑ π»á¬«óá¡¡δ¼¿ (¡á»α¿¼Ñα, ñ½∩ ºá»¿ß¿ ó Σá⌐½).
  597. Å«ñα«í¡«ßΓ¿ -- ó ñѼ«¡ßΓαᵿ«¡¡«¼ »α¿¼ÑαÑ squotest.c.
  598.  
  599.     Æ¿»δ ReadFunc ¿ WriteFunc «»¿ßá¡δ ó ºáú«½«ó«τ¡«¼ Σá⌐½Ñ squo.h:
  600.  
  601. typedef    size_t    ReadFunc (void * buffer, size_t size);
  602. typedef    size_t    WriteFunc (void * buffer, size_t size);
  603.  
  604.     ReadFunc τ¿ΓáÑΓ (WriteFunc ß««ΓóÑΓßΓóÑ¡¡« ºá»¿ßδóáÑΓ) size íá⌐Γ
  605. (size <= 65535) »« áñαÑßπ buffer. é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ -- τ¿ß½«
  606. »α«τ¿Γá¡¡δσ (ºá»¿ßá¡¡δσ) íá⌐Γ.
  607.  
  608.  
  609. ÄΦ¿í¬¿:
  610. =======
  611.  
  612.     é ¡áßΓ«∩ΘÑ⌐ óÑαß¿¿ ¿ú¡«α¿απεΓß∩ «Φ¿í¬¿ óδó«ñá »α¿ π»á¬«ó¬Ñ ¿
  613. αá߻ᬫó¬Ñ. é»α«τѼ, »«ñ«í¡δÑ ßαÑñßΓóá ¼«úπΓ íδΓ∞ αÑ὿º«óá¡δ ó
  614. »α«úαἼѠ»«½∞º«óáΓѽ∩. Éá߻ᬫóΘ¿¬ ¡Ñ ¬«¡Γα«½¿απÑΓ »αáó¿½∞¡«ßΓ∞
  615. óσ«ñ¡δσ ñá¡¡δσ (¡Ñ«ª¿ñá¡¡«Ñ «¬«¡τá¡¿Ñ óó«ñá).
  616.  
  617.  
  618.  
  619.  
  620. .te 1 .ce êß»«½∞º«óá¡¡δÑ ¿ßΓ«τ¡¿¬¿
  621.  
  622.  
  623. èα¿τÑó߬¿⌐, É.à. æªáΓ¿Ñ ¿ »«¿ß¬ ¿¡Σ«α¼áµ¿¿. - î.: Éáñ¿« ¿ ßó∩º∞, 1989.
  624. ÆÑ«αÑΓ¿τÑ߬á∩ αáí«Γá, »«ßó∩ΘÑ¡¡á∩ ΓÑ«α¿¿ ¬«ñ¿α«óá¡¿∩ ¿ßΓ«τ¡¿¬á.
  625. æ«ñÑαª¿Γ ¼¡«ú¿Ñ ó᪡δÑ αѺπ½∞ΓáΓδ, ó Γ«¼ τ¿ß½Ñ «µÑ¡¬¿ ß½«ª¡«ßΓ¿
  626. á½ú«α¿Γ¼«ó ¬«ñ¿α«óá¡¿∩. ü«½∞Φ«Ñ ó¡¿¼á¡¿Ñ πñѽѡ« π¡¿óÑαßá½∞¡δ¼ ¬«ñá¼.
  627.  
  628. É∩í¬« ü.ƒ. æªáΓ¿Ñ ¿¡Σ«α¼áµ¿¿ ß »«¼«Θ∞ε ßΓ«»¬¿ ¬¡¿ú // Åα«í½Ñ¼δ »ÑαÑñáτ¿
  629. ¿¡Σ«α¼áµ¿¿. - 1980. - Æ.16, N.4. - æ. 16-21. ÅÑαó«Ñ «»¿ßá¡¿Ñ ½«¬á½∞¡«
  630. áñá»Γ¿ó¡«ú« ¼ÑΓ«ñá ßΓ«»¬¿ ¬¡¿ú.
  631.  
  632. ÿÑ¡¡«¡ è. Éáí«Γδ »« ΓÑ«α¿¿ ¿¡Σ«α¼áµ¿¿ ¿ ¬¿íÑα¡ÑΓ¿¬Ñ. - î.: êï, 1963.
  633. 꺽«ªÑ¡δ ¬½áßß¿τÑ߬¿Ñ αѺπ½∞ΓáΓδ ΓÑ«α¿¿ ¿¡Σ«α¼áµ¿¿.
  634.  
  635. Abramson, N. Information Theory and Coding. McGraw-Hill, New York,
  636. 1963. ÅÑαóá∩ ßßδ½¬á ¡á ¼ÑΓ«ñ, »«ºªÑ ¡áºóá¡¡δ⌐ áα¿Σ¼ÑΓ¿τÑ߬¿¼
  637. ¬«ñ¿α«ó᡿Ѽ (ßΓα. 61-62).
  638.  
  639. Bell, T.C. IEEE Trans. COM-34, pp. 1176-1182 (1986).
  640. Åα¿¼Ñ¡Ñ¡¿Ñ ñó«¿τ¡«ú« ñÑαÑóá »«¿ß¬á ¬ á½ú«α¿Γ¼π ïѼ»Ñ½∩-ç¿óá.
  641.  
  642. Bentley, J.L., Sleator, D.D., Tarjan, R.E., Wei, V.K. A locally
  643. adaptive data compression scheme. Commun. ACM 29, 4 (Apr. 1986),
  644. 320-330. Ä»¿ßá¡ ½«¬á½∞¡« áñá»Γ¿ó¡δ⌐ á½ú«α¿Γ¼ ßªáΓ¿∩, ¿ß»«½∞ºπεΘ¿⌐
  645. φóα¿ßΓ¿¬π "ñó¿úá⌐ óóÑασ" (á½ú«α¿Γ¼ ßΓ«»¬¿ ¬¡¿ú É∩í¬«).
  646.  
  647. Gallager, R.G. Variations on the theme by Huffman. IEEE Trans. Inf.
  648. Theory IT-24, 6 (Nov. 1978), 668-674. ¥ΣΣÑ¬Γ¿ó¡δ⌐ á½ú«α¿Γ¼ áñá»Γ¿ó¡«ú«
  649. ¬«ñ¿α«óá¡¿∩ òáΣΣ¼Ñ¡á.
  650.  
  651. Huffman, D.A. A method for the construction of minimum-redundancy
  652. codes. Proc. Inst. Electr. Radio Eng. 40, 9 (Sept. 1952), 1098-1101.
  653. è½áßß¿τÑ߬á∩ αáí«Γá, ó»ÑαóδÑ «»¿ßδóáεΘá∩ ¬«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á.
  654.  
  655. Hunter, R. and Robinson, A.H. International digital fscsimile coding
  656. standarts. Proc. Inst. Electr. Electron. Eng, 68, 7 (July 1980),
  657. 854-867. Ä»¿ßá¡« »α¿½«ªÑ¡¿Ñ ¬«ñ¿α«óá¡¿∩ òáΣΣ¼Ñ¡á ¬ ßªáΓ¿ε ñ½¿¡ ßÑα¿⌐ ó
  658. τÑα¡«-íѽδσ ¿º«íαáªÑ¡¿∩σ.
  659.  
  660. Knuth, D.E. Dynamic Huffman coding. J. Algorithms 6, 2 (Feb. 1985),
  661. 163-180. Åαá¬Γ¿τÑ߬á∩ αÑ὿ºáµ¿∩ ½«¬á½∞¡« áñá»Γ¿ó¡«ú« ¬«ñ¿α«óá¡¿∩
  662. òáΣΣ¼Ñ¡á.
  663.  
  664. Rissanen, J.J. Arithmetic codings as number representations. Acta
  665. Polytech. Scand. Math. 31 (Dec. 1979), 44-51. äá½∞¡Ñ⌐ΦÑÑ αáºó¿Γ¿Ñ ¿ñÑ⌐
  666. áα¿Σ¼ÑΓ¿τÑ߬«ú« ¬«ñ¿α«óá¡¿∩.
  667.  
  668. Rissanen, J., and Langdon, G.G. Universal modelling and coding. IEEE
  669. Trans. Inf. Theory IT-27, 1 (Jan 1981), 12-23. Å«¬áºá¡á ó«º¼«ª¡«ßΓ∞
  670. αáºñѽѡ¿∩ ßªáΓ¿∩ ñá¡¡δσ ¡á ¼«ñѽ¿α«óá¡¿Ñ ¿ ¬«ñ¿α«óá¡¿Ñ.
  671.  
  672. Rubin, F. Arithmetic stream coding using fixed precision registers.
  673. IEEE Trans. Inf. Theory IT-25, 6 (Nov. 1979), 672-675. Äñ¡á ¿º »Ñαóδσ
  674. αáí«Γ, ó¬½ετáεΘá∩ óßÑ ¡Ñ«íσ«ñ¿¼δÑ φ½Ñ¼Ñ¡Γδ áα¿Σ¼ÑΓ¿τÑ߬«ú« ¬«ñ¿α«óá¡¿∩:
  675. óδτ¿ß½Ñ¡¿∩ ß Σ¿¬ß¿α«óá¡¡«⌐ Γ«τ¬«⌐ ¿ ¿¡¬αѼѡΓá½∞¡á∩ αáí«Γá á½ú«α¿Γ¼á.
  676.  
  677. Vitter, J.S. Two papers on dynamic Huffman codes. Tech. Rep. CS- 85-13.
  678. Brown University Computer Science. Providence, R.I. Revised Dec. 1986.
  679. Ä»Γ¿¼á½∞¡«Ñ áñá»Γ¿ó¡«Ñ ¬«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á.
  680.  
  681. Welch, T.E. A technique for high-perfomance data compression.  IEEE
  682. Comput. 17, 6 (June 1984), 8-19. Ä»¿ßá¡ íδßΓαδ⌐ á½ú«α¿Γ¼ ßªáΓ¿∩ ñá¡¡δσ,
  683. ¡Ñ «Γ½¿τáεΘ¿⌐ß∩, «ñ¡á¬«, óδß«¬¿¼ ¬áτÑßΓ󫼠ߪáΓ¿∩. Ç½ú«α¿Γ¼ ¿ºóÑßΓÑ¡
  684. ¬á¬ LZW (Lempel-Ziv-Welch compression) ¿ ñ«ßΓáΓ«τ¡« »«»π½∩αÑ¡
  685. (úαáΣ¿τÑ߬¿⌐ Σ«α¼áΓ GIF, ¼ÑΓ«ñ shrinking »α«úαá¼¼δ PKZIP).
  686.  
  687. Witten, I.H., Neal, R.M., and Cleary, J.G. Arithmetic coding for data
  688. compression. Commun. ACM 30, 6 (June 1987), 520-540. è½áßß¿τÑ߬á∩
  689. αáí«Γá »« áα¿Σ¼ÑΓ¿τÑ߬«¼π ¬«ñ¿α«óá¡¿ε.
  690.  
  691. Ziv, J., and Lempel, A. Compression of individual sequences via
  692. variable-rate coding. IEEE Trans. Inf. Theory IT-24, 5 (Sept. 1978),
  693. 530-536. Ä»¿ßá¡ ¼ÑΓ«ñ ßªáΓ¿∩, ºá¼Ñ¡∩εΘ¿⌐ »«ñßΓ᫬π ΓѬßΓá π¬áºáΓѽѼ ¡á
  694. ÑÑ í«½ÑÑ αá¡¡ÑÑ óσ«ªñÑ¡¿Ñ. ìá φΓ¿σ ¿ñÑ∩σ «ß¡«óá¡« í«½∞Φ¿¡ßΓó«
  695. »αá¬Γ¿τÑ߬¿ ¿ß»«½∞ºπѼδσ »α«úαá¼¼ ßªáΓ¿∩ ñá¡¡δσ.
  696.  
  697.  
  698.  
  699. .te 1 .ce Åα¿½«ªÑ¡¿Ñ Ç. Äíº«α »α«úαá¼¼ ßªáΓ¿∩ ñ½∩ MS-DOS.
  700.  
  701.  
  702.     é ß½ÑñπεΘÑ⌐ Γáí½¿µÑ ß«ñÑαªáΓß∩ αѺπ½∞ΓáΓδ ΓÑßΓ¿α«óá¡¿∩
  703. »α«úαá¼¼δ ¡á ¡Ñ߬«½∞¬¿σ Σá⌐½áσ. ä½∩ ßαáó¡Ñ¡¿∩ »α¿óÑñÑ¡δ αѺπ½∞ΓáΓδ
  704. ñ½∩ ΓαÑσ »«»π½∩α¡δσ áασ¿óáΓ«α«ó ñ½∩ MS-DOS. ïÑóá∩ ¬«½«¡¬á ß«ñÑনΓ
  705. ñ½¿¡π ßªáΓ«ú« Σá⌐½á, »αáóá∩ -- «Γ¡«ΦÑ¡¿Ñ αẼÑαá ßªáΓ«ú« Σá⌐½á ¬
  706. αẼÑαπ «α¿ú¿¡á½∞¡«ú« Σá⌐½á. öá⌐½ squo.c »αÑñßΓáó½∩ÑΓ ß«í«⌐
  707. ¿ßσ«ñ¡δ⌐ ΓѬßΓ «ñ¡«ú« ¿º ¼«ñπ½Ñ⌐ «»¿ßδóáѼ«⌐ »α«úαá¼¼δ, Σá⌐½ mawk.doc
  708. -- ΓѬßΓ ¡á á¡ú½¿⌐߬«¼ ∩ºδ¬Ñ, Σá⌐½ sos.doc -- ΓѬßΓ ¡á απß߬«¼ ∩ºδ¬Ñ.
  709. é ¬«½«¡¬Ñ 'Original' »α¿óÑñÑ¡δ αẼÑαδ ¡Ñπ»á¬«óá¡¡δσ Σá⌐½«ó.
  710.  
  711.  
  712. Filename   Original SquoTest 1.5 PKZIP 1.0   LHA 2.13     ARJ 2.30
  713. ---------  -------- ------------ ----------- ------------ -----------
  714. SQUO.C        17821    5876  33%   5371  30%   5148  29%    5089  29%
  715. MAWK.DOC      42961   17108  40%  15359  35%  15122  35%   14713  34%
  716. SOS.DOC       28525   14373  50%  14356  50%  12957  45%   12500  44%
  717.  
  718.  
  719.     äá½ÑÑ »α¿ó«ñ¿Γß∩ »ÑαÑτÑ¡∞ (φáóÑñ«¼« ¡Ñ»«½¡δ⌐) »α«úαá¼¼ ßªáΓ¿∩
  720. ñ½∩ MS-DOS ß ¬αáΓ¬¿¼ π¬áºá¡¿Ñ¼ á½ú«α¿Γ¼«ó ¿σ αáí«Γδ ¿ ñá½∞¡Ñ⌐Φ¿¼¿
  721. ßßδ½¬á¼¿.  ÇóΓ«α óδαáªáÑΓ í½áú«ñáα¡«ßΓ¿ Haruhiko Okumura ('Data
  722. Compression Algorithms of LARC and LHarc'), Robert K Jung (ARJ archiver
  723. documentation), PKWARE Inc. (PKZIP archiver documentation) φá
  724. »αÑñ«ßΓáó½Ñ¡¡πε ¿¡Σ«α¼áµ¿ε.
  725.  
  726.  
  727. PKPAK 3.61:
  728.  
  729. îÑΓ«ñ Packed -- á½ú«α¿Γ¼ RLE.
  730. îÑΓ«ñ Crunched-- á½ú«α¿Γ¼ LZW.
  731. îÑΓ«ñ Squashed -- ñóπσ»α«σ«ñ¡«Ñ ßΓáΓ¿τÑ߬«Ñ ¬«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á.
  732.  
  733. PKZIP 1.10:
  734.  
  735. îÑΓ«ñ Shrinked -- ¼«ñ¿Σ¿µ¿α«óá¡¡δ⌐ á½ú«α¿Γ¼ LZW ß τáßΓ¿τ¡«⌐ «τ¿ßΓ¬«⌐
  736. ß½«óáα∩ ¿ »ÑαѼѡ¡«⌐ ñ½¿¡«⌐ ¬«ñá.
  737.  
  738. îÑΓ«ñ Imploded -- ¼«ñ¿Σ¿µ¿α«óá¡¡δ⌐ á½ú«α¿Γ¼ ïѼ»Ñ½∩-ç¿óá ¿
  739. ßΓáΓ¿τÑ߬«Ñ ¬«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á.
  740.  
  741. LHArc:
  742. ǽú«α¿Γ¼ ïѼ»Ññ∩-ç¿óá ¿ ñ¿¡á¼¿τÑ߬«Ñ ¬«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á.
  743.  
  744. LHA:
  745. ǽú«α¿Γ¼ ïѼ»Ññ∩-ç¿óá ¿ ßΓáΓ¿τÑ߬«Ñ ¬«ñ¿α«óá¡¿Ñ òáΣΣ¼Ñ¡á.
  746.  
  747. ARJ:
  748. ǽú«α¿Γ¼ ïѼ»Ñ½∩-ç¿óá ¿ «α¿ú¿¡á½∞¡δ⌐ ¼ÑΓ«ñ ¬«ñ¿α«óá¡¿∩ (¿ßΓ«τ¡¿¬:
  749. áóΓ«α߬á∩ ñ«¬π¼Ñ¡Γᵿ∩).
  750.  
  751.  
  752.