ืืืขื ืืืจ ืจืขืื ืืืขืื ืกืืขืืึทื ืึธืืจืึทืคื, ืืขื ืืฉื ืืจืึทืืื ืคืื ืืขืจืขืจืึทืกืฅ, ืคึผืขืืึธืคืืืขืก, ืกืคึผืืขืก ืึธืืขืจ, ืืื ืืขืกืืขืจ, ืงืจืืคึผืืึธืึทื ืึทืจืืฉืืกืฅ ืืื ืื ืืขืจืข ืกืืืึทื ืืืก. ืืื ืืึทืงืข, ืืืขืจ ืึทื ืืขืจืฉ ืงืขื ืืึทืจืคึฟื ืืึทืืึทืืื ืขืคึผืขืก ืคืื ืืจืืืกื ืืืงืข ืืืืื? ืืืึธืก ืงืขื ืืืื ืื ื ืืฅ ืคืื ืืขื ืฆื ืึท ืคึผืจืึธืกื ืืขื ืืฉ?
ืขืก ืืืจื ืก ืืืืก ืึทื ืขืก ืืื ืืืื. ืึทื ืืื ืืืึธืก ืืืึทื ื ืืืจ ืืืขืื ืงืึธืืคึผืจืขืก ืืึทืื ืืื ืกืืขืืึทื ืึธืืจืึทืคื ืืขืืืึธืืก. ืืื ืืื ืื ืกืืฃ, ืืขืจ ืืืืขื ืขืจ ืืืขื ืืคืืื ืงืขื ืขื ืฆื ื ืืฆื ืืืื ืืืึทืขืจ ืคืึธืืึธ ืึทืจืงืืืืื ืืื JPEG ืฆื ืคืึทืจืืจืขืกืขืจื ืื ื ืืืขืจ ืคืื ืคืจืื ืืืืืืืื ืืืืฃ ืื ืืขืงืข ืกืืกืืขื.

ืืืึธืก?
ืืืื ืืขืจ ืืืืขื ืขืจ ืืขืืขื ืงื, ืกืืขืืึทื ืึธืืจืึทืคื ืืื ืึทืืึท ืืึธืื ืข ืึทืืืขืจืืืึทืื ืืืึธืก ืืึทืื ืขืก ืืขืืืขื ืฆื ืืึทืืึทืืื ืืขื ืืืึทืืืึทื ืคืื ืืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืื ืื ืืขืจื. ืืื ืืคืืื ืกืืืคึผืืขืจ ืฉืคึผืจืึทื: ืืืื + ืืขืงืข == ืืขืขืจืขื ืืขืจ ืืขืืืืงืขืจ ืืืื, ืึธืืขืจ ื ืืฉื ืืึทื ืฅ (ืึทื ืฉืืึธื ืืืืืขืจ ืขืก ืงืขื ืขื ืืืื ืขืคึผืขืก, ืึธืืขืจ ืืืืฉืึทืืืึทืื ืึทืืฅ ืืื ืงืืึธืจ ืืื ืืื). ืึธืืขืจ, ืขืก ืืึธื ืืืื ืงืืื ืืจืื ื ืืืขื ืฆื ืืึทืฉืืืกื ืฆื ืขืก ืืื ืขืคึผืขืก ืื ืึธืืขืจ ื ืืฉื.
ืืืขืจ ืืืื ืืืื ืขืจ ืงืขื ื ืืฉื ืืืื ืืื ืืขืจืฉืืืื ืคืื ืื ืื ืืขืจืข, ืืื ืขืก ืงืืื ืืืืืง? ืคึฟืื ืื ืงืึธื ืกืืืขืจ ืก ืคืื ื ืคืื ืืืื ืื ื, ืืขืจ ืืึทื ืืฆืขืจ ืืื ื ืืฉื ืืึธืจืื ืืืขืื ืื ืืึทืืึทืืึทืืืงืึทื ืคึผืื ืืืขืืงืืึทื (ืจืขืคืืขืงืืขื ืืืจื ืึท ืืึทืืื ืืขืจ ืืึทื ื ืคืื ืืืื), ื ืึธืจ ืืืึธืก ืืื ืืืืขืจืงื ืืืจื ืืื.
ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืึธืืืจ ืงืืงื ืืื ืืจืืึท ืืืืืขืจ ืคืื ืึท ืงืืื ืืื ื:
ืืื ืืืื, JPEG!

ืืจืึธืฅ ืืขื ืจืืืืง ืืืืืง ืืื ืืจืืืก, ืืืืื ืืง ืืขื ืืฉื ืืืขืื ืงืืืึทืื ืื ืืจืื ืืืขืจืกืืข. ืืืืฃ ืื ืื ืืขืจืข ืืึทื ื, ืืขืจ ืืืืืง ืฆืืืืฉื ืื ืขืจืฉืืข ืฆืืืื ืคืึธืืืึทืืจืึทืคืก ืืื ื ืืฉื ืึทืืื ืืืืขืจืงื, ืืื ืื ืกืืืข ืคืื โโโโืืื ืคึฟืึธืจืืึทืฆืืข ืืื ืืื (ืคืื ืืืื ืคืื ื ืคืื ืืืื ืื ื) ืงืขื ืขื ืืืื ืืืืึทื.
ืืขืจ ืคึผืจืื ืฆืืคึผ ืืื ืืื ืฉืืื ืึทืื ืืื ืืื ืึทืงืืืืืื ืขืงืกืคึผืืืืืึทื ืืืจื ืืึธืกืกื ืืื ืคึฟืึธืจืืึทืฆืืข ืงืึทืืคึผืจืขืฉืึทื ืืขืืืึธืืก ืคึฟืึทืจ ืคืืืข ืืึธืจื. ืืืขืจ ืืจืืืงืื ื ืืื ื ืืฉื ืื ืื ืืืจ ืืขื ืขื ืืื ืืขืจืขืกืืจื ืืื ืื ืืขืจ ืึทืืืึทื ืกืืจืืข ืืืึทื ืคืื ืื ืึทืจืืืกืืขืื. ืืื ืขืก ืืขืืืขื ืฆื ืืืืขื ื ืึธื ืืจืืืก ืืื ืคึฟืึธืจืืึทืฆืืข N ืฆื ืืขืจ ืืขืงืข ืึทืืื ืึทื ืืืึทื ืืจืืืก ืื ืงืจืืกืื ืืืจื M < N, ืึธืืขืจ ืื ืขื ืืขืจืื ืืขื ืืขื ืขื ื ืืฉื ืืืืขืจืงื ืฆื ืืขืจ ืืึทื ืืฆืขืจ?
ืืึธื ืืืจ ืงืขื ืขื. ืึธืืขืจ ืขืก ืืื ืืืขืจื ืฆื ืืึทืื ืึท ืคึผืึธืจ ืคืื ืจืขืืขืจืืืืืฉืึทื ื ืืืืื:
- ืคืืจืกืืื, ืืขืจ ืืืคึฟื ืืืื ืืืื ืื ืืืืขืจืกืึทื ืืื ืืขืื ืึท positive ืจืขืืืืืึทื ืืืืฃ ืจืืึฟ ืึทืจืืึทื ืฉืจืืึทื ืืึทืื. ืึทื ืืื, ืืื ืืืจืืฉื ืืืืขื, ืคึฟืึทืจ ืึท ืืจืึทืค - ืึทืจืืึทื ืฉืจืืึทื, ืขืก ืืึธื ืืืื ืึท ืคืึทืงืืืฉ ืคืึทืจืงืืขื ืขืจื ืืื ืื ืกืืืข ืคืื โโโโืืื ืคึฟืึธืจืืึทืฆืืข ืกืืึธืจื. "ืืื ืืืจืืฉื ืืืืขื" ืืืื ืึทื ืืขืจ ืคืึทืจืงืขืจื ืงืขื ืคึผืึทืกืืจื, ืึธืืขืจ ืืึธื ื ืืฉื ืคึผืจืืืึทืืึทื ืืื.
- ืฆืืืืืื ืก, ืื ืืจืืืก ืคืื ืืขื ืงืึทืืคึผืจืขืกื ืงืึทื ืืืื ืขืจ ืืืืืขืจ ืขืืืขืืืื ื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืื ืืืื ืืจืขืกืขืจ ืืื ืืืึทื ืืึทืืึทืคืึทืงืืืฉืึทื ืงืึทืืคึผืจืขืกื ืืื ืึท ืขื ืืขื ืืืขื. ืกืืืคึผืื ืขืืืขืืืื ื ืึท ืืื ืื ืคืื ืืืื ืืื BMP ืืืืืขืจ ืืื ืื LSB ืืืคึฟื ืืื ื ืืฉื ืกืืขืืึทื ืึธืืจืึทืคืืง ืงืึทืืคึผืจืขืฉืึทื, ืืืืึทื, ืื ืึธืจืืืื ืขื ืืืื ืืื ืืืจืืืขืงืึธืื ืืืจื ืขืืืขืืข ืืขืคืืึทืืข, ืจืืึฟ ืืกืชึผืื ืืืขื ืืืื ื ืึธืืืืกืึทืืื ืงืืขื ืขืจืขืจ.
- ืืจืืื ืก, ืืขืจ ืจืขืืืืืึทื ืืืื ืืืื ืืขืคืืจื ืืืืก ืืื ืงืึทืืคึผืขืจื ืืื ืจืขืกืคึผืขืงื ืฆื ืืึทืื ืฉืืื ืงืึทืืคึผืจืขืกื ืืืจื ืงืืึทืกืืฉ ืืขืืืึธืืก. ืืึธืก ืืืขื ืืึทืืืึทืืืงื ืื ืคึผืจืึธืืึทืืึทืืืกืืืง ืืืืจืงืื ื ืคืื ืืืคืขืจืึทื ืกืื ืืื ืืืืขืจ ืืืขืจืืงืืึทื ืืื ืฆืืฉืืขืื ืืขืจ ืขืคืขืงืืืื ืงืึทืืคึผืจืขืฉืึทื ืืื ืึทืืืขืืืื ืคืึทื.
ืืื
ืื ื ืืฆื ืคืื ืกืืขืืึทื ืึธืืจืึทืคื ืืืคึผืืืื ืึทื ืืื ืึทืืืฉืึทื ืฆื ืื ืงืึทืืคึผืจืขืกื ืืื ืคึฟืึธืจืืึทืฆืืข, ืืืจ ืืึทืจืคึฟื ืงืึทื ืืืื ืขืจื ืืื ืืืึธืก ืขืก ืืืขื ืืืื ืขืืืขืืื. ืื ืืึทืงืกืืืื ืกืืืข ืคืื โโืขืืืขืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืขืคึผืขื ืืก ืืึทืจืืขืื ืืืืฃ ืืืื ืคึผืจืึธืคึผืขืจืืืขืก, ืึธืืขืจ ืขืก ืืื ืคืื ืืจืื ืืขืจ ืฆื ืืืึธื ืืื ืืืืขืจ ื ืืืขืจ. ืืขืจืืืขืจ, ืืขืจ ืงืึทื ืืืื ืขืจ ืคึฟืึธืจืืึทื ืืืื ืืืื ืคึผืจืึธืกื ืึทืืื ืึทื ืืขืจ ืืึทื ืืฆืขืจ ืืื ืืขื ืื ืคืื ืืื ืฆื ืืึทืงืืืขื ืงืืื ื ืืฅ ืคืื ืื "ืงืึทืืคึผืจืขืฉืึทื" ืคึผืจืึธืฆืขืก.
ืืื ืืขื ืงืึธื ืืขืงืกื, ืืจืึทืคืืงืก, ืึทืืืืึธ ืืื ืืืืืขื ืืขืงืขืก ืืขื ืขื ืืื ืงืึทื ืืึทืืืืฅ. ืึธืืขืจ, ืจืขืื ืฆื ืืขืจ ืคืึทืจืฉืืืื ืงืืึทื ืคืื ืคืึทืจืฉืืืขื ืข ืคึฟืึธืจืืึทืืืจืื ืืขื, ืงืึธืืขืงืก, ืืื"ื ื, ืืื ืคืืจ ืืืจ ืืึธืื ืึท ืืจืืจื ืคืื ื ืื ืึทืืื ืคืืืข ืึธืคึผืฆืืขืก.
ืงืึทื ืกืืืขืจืื ื ืึทืืข ืืขื, ืืืื ืืจืืจื ืืื ืืขืคืืื ืืืืฃ JPEG ืึผืืขื ืึทืืขืืขื ืืื ืขืก, ืขืก ืืื ืืืืืืื ืืขื ืืฆื ืคึฟืึทืจ ืืืืืข ืคึผืขืจืืขื ืืขื ืืื ืืขืฉืขืคื ืฆืืืขืงื, ืึผืืขื ืื ืคืึทืงืืึธ ืคึฟืึธืจืืึทื ืคึฟืึทืจ ืจืืึฟ ืืืืืขืจ.

ืขืก ืืืขื ืื ืืื?
ืืืืึทืืขืจ ืขืก ืืขื ืขื ื ืึธืขื ื ืืื ืืขืื ืืฉ ืืืืึทืืจืึทืื ืืื ืืืกืงืจืืคึผืฉืึทื ื ืึธื ืคืื ืืขืจืงืืขืจืื ื, ืึทืืื ืื ืืื ืืขืจืขืกืืจื ืงืขื ืขื ืืึธืคึผืงืขื ืืื ืืืจื ืกืงืจืึธืืืื ื ืฆื ืื "ืืืื ืืขืืฉื ืึธืืึธืืืขืก" ืึธืคึผืืืืืื ื.
ืคึผืจืึธืกื ืคึฟืขืึดืงืืืื
ืฆื ืืืืขื ืืึทืื ืขืจืืขืฅ, ืืืจ ืืืื ืขืจืฉืืขืจ ืืึทืฉืืืกื ืืื. ืขืก ืงืขื ืขื ืืืื ืงืืื ื ืืืขืจ ืคืื ืคืึทืจืฉืืืขื ืข ืคืึธืืืึทืืจืึทืคืก ืืืืฃ ืื ืืขืงืข ืกืืกืืขื, ืคืื ืืืึธืก ืืขืจ ืืึทื ืืฆืขืจ ืงืขื ืืืขืื ืฆื ื ืืฆื ืืืืื ืึท ืืืกื. ืืืจ ืืืขืื ืจืืคื ืึทืืึท ืึท ืืขืืืืื ืืึทื ื ืคืื ืงืึทื ืืืื ืขืจื ืึท ืืืืืืึธืืขืง.
ืขืก ืืื ืืขืฉืืคื ืืื ืฆืืืื ืงืึทืกืขืก: ืืืืืขืจ ืงืึทืืคึผืจืขืฉืึทื ืืื ืืืืืขืจ ืืืงืึทืืคึผืจืขืฉืึทื. ืืื ืืขืจ ืขืจืฉืืขืจ ืคืึทื, ืืืจ ืงืขื ืขื ืคืฉืื ื ืืฆื ืึท ืกืืื ืคืื ืืขืงืข ื ืขืืขื (ืึธืืขืจ ืืขืกืขืจ ื ืึธื, ืึท ืจืขืืืืขืจ ืืืืกืืจืืง ืคึฟืึทืจ ืืื) ืคืื ืืขืงืขืก, ืึธืืขืจ ืืื ืื ืจืืข, ืขืคึผืขืก ืืขืจ ืคืึทืจืืึธืืืขื ืืื ืคืืจืืื ืื: ืืขืจ ืืึทื ืืฆืขืจ ืงืขื ืขื ื ืึธืืืึทืื ืืื ืืึทื ืืื ืื ืืขืจ ืืขืงืข ืกืืกืืขื , ืืขืจืืื ืคึผืจืขืืืขื ืืื ื ืืื ืฆื ืืืื ืจืืืืืง ืืืืขื ืึทืคืืื. ืืขืจืืืขืจ, ืขืก ืืื ื ืืืืืง ืฆื ืงืจืึธื ืืืืขืจ ืืึทืฉืขืก (ืื 5 ืืื ืืขื ืื) ื ืึธื ืึทืืข ืืึธืืืคืืงืึทืืืึธื ืก ืืขื ืขื ืืขืืืื.
ืืื ืืขื ืคืึทื, ืขืก ืืื ืงืืื ืคืื ื ืืื ืงืึทื ืืึทืงืืื ื ืื ืขืจืฉื ืืืื ื ืืฆื ืึท ืจืขืืืืขืจ ืืืืกืืจืืง ืืืืขืจ ืื ืืื ืฆืข ืืขืงืข ืกืืกืืขื, ืขืก ืืื ืืขื ืื ืฆื ืกืคึผืขืฆืืคืืฆืืจื ืึท ืืืืขืจ ืืืึธืจืฆื ืืืขืืืืืึทืืขืจ. ื ืกืคึผืขืฆืืขืืข ืึทืจืงืืืื ืืขืงืข ืืืขื ืืืื ืืขืจืืืขืืืขื ืืื ืขืก, ืืืึธืก ืืืขื ืึทื ืืืึทืืื ืื ืืึทืฉืขืก, ืฆืืืึทืืขื ืืื ืื ืืขืจืข ืืขืืึท-ืืื ืคึฟืึธืจืืึทืฆืืข ื ืืืืืง ืคึฟืึทืจ ืื ืกืึทืืกืึทืงืืืึทื ื ืึธืคึผืืื ืคืื ืงืึทืืคึผืจืขืกื ืืื ืคึฟืึธืจืืึทืฆืืข.
ืึทืืข ืืขื ืึทืคึผืืืื ืืืืึทื ืฆื ืงืืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืงืืื ืกืืขืืึทื ืึธืืจืึทืคืืง ืืึทืื ืงืึทืืคึผืจืขืฉืึทื ืึทืืืขืจืืืึทื. ืื ืคึผืจืึทืกืขืกืึทื ืคืื ืืึทืื ืงืึทืืคึผืจืขืฉืึทื ืืื ืึธืคึผืืื ืืื ืงืขื ืขื ืืืื ืืขืจืืคึฟื ืคึผืึทืงืื ื ืืื ืึทื ืคึผืึทืงืื ื.
F5
ืืืฆื ืึทื ืขืก ืืื ืืขืืืืจื ืงืืึธืจ ืืืึธืก ืืืจ ืืึธื ืืื ืืืึธืก, ืขืก ืืืืืื ืฆื ืืึทืฉืจืืึทืื ืื ืึทืืืขืจืืืึทื ืคึฟืึทืจ ืืขืจืืจืืืื ืืขื ืฆืื. ืืึธืืืจ ืฆืืจืืงืจืืคื ืืขื ืคึผืจืึธืฆืขืก ืคืื ืงืึธืืืจืื ื ืคืื ืึท JPEG ืืขืงืข (ืืึทื ืง ืฆื ืื ืืืืงื ืคืื ืื ืืึทืืืึทื ื ืึทืฉืึทื ืึทื ืืืืืืึธืืขืง):

ืงืืง ืืื ืขืก, ืขืก ืืื ืืขืกืขืจ ืฆื ืืื ืืึทืื ืึท ืืืกื ืืึทืืขืจืงืื ืืขื:
- ืื ืืจืืืก ืคืื ืึท JPEG ืืขืงืข ืงืขื ืขื ืืืื ืืขืืืืื ืึธืคึผืืืืึทื ืึธื ืืคืืื ืืจืืื ื ืฆื ืงืึธืืคึผืจืขืก ืขืก ืืื ืขืืืขืืข ืืื ืคืื Winrar;
- ืืืืื ืื ืกืืึธืจื ืืื ืคึฟืึธืจืืึทืฆืืข (ืืืึธืก ืืื ืจืขืืืืืึทื ืคืื ืื ืืืกืงืจืขืืข ืงืึธืกืื ืข ืืืขืจืืึทืื, DCT) ืงืขื ืขื ืืืื ืืึทืืึทืคืืื ืฆื ืฆืืฉืืขืื ืืืึท ืืื ืืกืืขืจ ืคึผืึทืกืืง ืคืึธืจืฉืืขืืื ื.
- ืืื ืกืืจ ื ืืฉื ืฆื ืคืึทืจืืืจื ืืึทืื ืืืืฃ ืึทื ืื ืืึทืกืืจืืึทื ืืืึธื ืืืืขืจืงื ืคึฟืึทืจ ืื ืืึทื ืืฆืขืจ, ืขืก ืืื ื ืืืืืง ืฆื ืืึทืื ืึท ืืื ืืืื ืคืื ืืึธืืืคืืงืึทืืืึธื ืก ืฆื ืืขืืขืจ ืืืื ืืืื;
ื ืืื ืฆืข ืืฉืคึผืื ืคืื ืึทืืืขืจืืืึทืื ืคืืฅ ืื ืืืืื ืืื ืืขื, ืืืึธืก ืืืจ ืงืขื ืขื ืืืงืขื ืขื ืืื ืืื . ืื ืืขืจืกื ืึทืืืึทื ืกืืจืืข ืคืื โโืืื ืืื ืื ืึทืืืขืจืืืึทื ืืืจื Andreas Westfeld, ืืจืืขืื ืืื ืื ืืงื ืงืึธืืึทืคืืฉืึทื ืฅ ืคืื ืื ืืจืืืื ืึทืก ืงืึธืืคึผืึธื ืขื ื (ืื ืืขื ืืฉ ืืืื ืืื ืงืืขื ืกืืขืจ ืฉืคึผืืจืขืืืืืง ืฆื ืืืื ืขื ืืขืจืื ืืขื). ืืขืจ ืืขื ืขืจืึทื ืืืืกืืืื ืืืขื ืืจืืขืื ืืื ืึท ืืืืืกืืื ื JPEG ืืขืงืข ืืื ืืขืืืืื ืืื ืืืื:

ืื F5 ืืืึธืง ื ืืฆื ืึท ืึทืืืึทื ืกืืจืืข ืขืืืขืืืื ื ืืขืื ืืง ืืืืืจื ืืืืฃ ืืึทืืจืืฅ ืงืึธืืืจืื ื. ืืขืจ ืืืืขื ืขืจ ืงืขื ืขื ืืขืจื ืขื ืืขืจ ืืืขืื ืืื ืืื ืื ืึทืืืขืจืืืึทื ืืื ืืื ืื ืืื ืง ืืืืื, ืึธืืขืจ ืืืจ ืืขื ืขื ืืคึฟืจื ืืื ืืขืจืขืกืืจื ืืื ืืขื ืคืึทืงื ืึทื ืืื ืืืื ืืืืฃ ืืืจ ืงืขื ืขื ืืึทืื ืื ืืืืื ืืงืขืจืข ืขื ืืขืจืื ืืขื ืืืขื ืขืืืขืืืื ื ืื ืืขืืืข ืกืืืข ืคืื โโืืื ืคึฟืึธืจืืึทืฆืืข, ืื ืืจืขืกืขืจืข ืื ืืจืืืก ืคืื ืืขื ืงืึทื ืืืื ืขืจ ืืขื ืืฆื. , ืืื ืคึฟืึทืจ ืืืจืืคืืจื ืื ืึทืืืขืจืืืึทื ื ืึธืจ ืืึทืจืคึฟื ืฆื ืืืจืืคืืจื ืคึผืฉืื Huffman ืืื RLE (ืืข) ืงืึธืืืจืื ื ืึทืคึผืขืจืืืฉืึทื ื.
ืื ืขื ืืขืจืื ืืขื ืืื ืืขื ืขื ืืขืืืื ืฆื ืื ืืึทืืืฉืขืจ ืงืึธืืึทืคืืฉืึทื ืฅ ืืื ืงืืืขื ืึทืจืึธืคึผ ืฆื ืจืืืืกืื ื ืืืืขืจ ืึทืืกืึธืืื ืืืขืจื ืืื ืืืื, ืืืึธืก ืึทืืึทืื, ืืืื ืืขืจืขืื, ืฆื ื ืืฆื F5 ืคึฟืึทืจ ืืึทืื ืงืึทืืคึผืจืขืฉืึทื. ืื ืคืื ื ืืื ืึทื ืื ืจืืืืกื ืงืึธืืึทืคืืฉืึทื ื ืืื ืึทืืกืึธืืื ืืืขืจื ืืืขื ืจืืึฟ ืืกืชึผืื ืคืึทืจื ืขืืขื ืืืืื ืืงืขืจืข ืืืื ื ืึธื Huffman ืงืึธืืืจืื ื ืจืขืื ืฆื ืืขืจ ืกืืึทืืืกืืืฉ ืคืึทืจืฉืคึผืจืืืืื ื ืคืื ืืืึทืืืขืก ืืื JPEG.

ืืื ืื ืคืึทื ืคืื ืื ืคืึธืจืืืจืื ื ืคืื ืึท ื ืื (ืื ืึทืืื ืืขืจืืคืขื ืข ืจืขืืืงืฆืืข), ืื ื ืืืขืจ ืคืื ืกืืึธืจื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขื ืืืื ืจืืืืกื ืืืจื ืืืึทื ืืจืืืก, ืืืืึทื ืื ืขืจืฉืืข ืคืจืืึท ืงืึธืืึทืคืืฉืึทื ื ืืืขื ืืืขืจื ืึท ืืืื ืคืื ืื RLE ืงืึธืืขื ืกืืงืืืึทื ืก ืคืื ืืขืจืึธืก:

ืืึธืืืคืืงืึทืืืึธื ืก
ืืึทืืึท ืฉืืฅ ืืื ืงืึทืืคึผืจืขืฉืึทื ืืขื ืขื ืึธืจืืึธืืึธื ืึทื ืคึผืจืึธืืืขืืก, ืึทืืื ืื ืกืื ืคึผืึทืจืึธื ืคึผืขืจืืืืืืืฉืึทื ืคืื ืืขืจ ืึธืจืืืื ืขื ืึทืืืขืจืืืึทื ืงืขื ืขื ืืืื ืึธืคึผืืขืืึธืื. ืืขืจืฆื, ืืืจ ืืึทืจืคึฟื ืฆื ืืืืกื ืคึผืื ืงื ืืื ืฆื ืขืงืกืืจืึทืงื ืื ืืึทืื, ืึทืืื ืึทืืข ืื ื ืืืืืง ืืื ืคึฟืึธืจืืึทืฆืืข ืคึฟืึทืจ ืืขื (ืืืึธืก ืงืึทื ืืืื ืขืจื ืืขื ืขื ืืขื ืืฆื, ืืื ืืืึธืก ืกืืจ, ืืื"ื ื) ืืึธื ืืืื ืจืขืงืึธืจืืขื ืืื ืึท ืืึทืืื ืืขืจ ืืขืงืข ืืื ืืืื ืึธืืคึผืึทื ื ืคึฟืึทืจ ืคืจืื ืืืืขื ืขื ืืืจื ืื ืึทืจืืฉืืืืขืจ.
ืืขืจ ืึธืจืืืื ืขื ืึทืืืขืจืืืึทื ืืื ืืืืืื ื ืฆื ืืืขืจืฉืืงื ืกืื ืึทืจืืืงืืขื, ืึทืืื ืขืก ืึทืจืืขื ืืื ืืืืื ืืืื ืงืึทื ืืืื ืขืจ ืืื ืึท ืฆืืึทื, ืึทืกืืืื ื ืึทื ืืขืจ ืืึทื ืืฆืขืจ ืืื ืืืขื ืืจืขืื ืขืก ืืื ืืืืื ืืืื ื ืืืืืง, ืืืื ืขืก ืืื. ืืขืจืฆื, ืืืขื ืขืืืขืืื ืื ืืืคึผืขื ืืึทื ืืื ืืื ืืขืืขืจ ืงืึทื ืืืื ืขืจ, ืืืจ ืืึทืจืคึฟื ืฆื ืืืืกื ืืื ืฉืืืึทืื ืืื ืคืืืข ืืืื ืคืื ืืึทืื ืฆื ืฉืืขืื ืืื ืืขืืขืจ. ืืขืจืืืขืจ, ืื ืงืึธืืึทืคืืฉืึทื ืฅ ืคืื ืืขืืขืจ ืขืืขืืขื ื ืคืื ืืขืจ ืืืืืืึธืืขืง ืืึธื ืืืื ืงืึทืืืืื ื ืืื ืืืื ืึทืืกืืจืึทืงื ืืจืืืก ืืืื ืขืจ ืืื ืืขืืจืืขื ืืื ืืื ืืืื ืืขืจ ืึธืจืืืื ืขื ืึทืืืขืจืืืึทื.
ืืื ื ืืขืจ ืึธืจืืืื ืขื F5 ืึทืืึทืื ืึทืจืืืฃ ืฆื 12% ืคืื ืื ืงืึทื ืืืื ืขืจ ืืจืืืก, ืืขื ืืึธืืืคืืงืึทืืืึธื ืืืขื ืืืื ืคืึทืจืืจืขืกืขืจื ืื ืืึทืงืกืืืื ืงืึทืคึผืึทืฆืืืขื: "ืึทืจืืืฃ ืฆื 12%" ืคืื ืื ืืจืืืก ืคืื ืืขืจ ืืื ืฆืขืจ ืืืืืืึธืืขืง ืืื ืืจืขืกืขืจ ืืื ืึธืืขืจ ืืืืึทื ืฆื ืื ืกืึทืืึทืงื ืคืื "ืึทืจืืืฃ ืฆื 12% " ืคืื ืืขืืขืจ ืคืื ืืืึทื ืขืืขืืขื ืื.
ืื ืงืึธืืึทืคืืื ืึทืืืขืืืื ืข ืกืืขืืข ืืื ืืื ืืืื:

ืืขืจ ืึทืืืขืจืืืึทื ืืื
ืืืฆื ืขืก ืืื ืฆืืื ืฆื ืืึทืฉืจืืึทืื ืื ืึทืืืขืจืืืึทื ืืื ืคืื ืึธื ืืืื ืฆื ืขื ืืืงื, ืึทืืื ื ืืฉื ืฆื ืืึทืืื ืื ืืืืขื ืขืจ ืืื ืืขืจ ืคืื ืฆืืขืจ:
- ืืขืจ ืืึทื ืืฆืขืจ ืืืคืืื ื ืื ืืืื ืขืจื ืงืึทืืคึผืจืขืกืึทืืึทื ืืึทืื ื ืืื ืื ืืืืืืึธืืขืง ื ื ืืฆื ืึท ืจืขืืืืขืจ ืืืืกืืจืืง ืืื ืึท ืืืื ืืืึธืจืฆื ืืืขืืืืืึทืืขืจ;
- ืืื ืืขืจ ืกืืจ ืืื ืืขืจืฉืืึทื ืขื ืืืืฃ ืื FS, ืื ืืืืืืึธืืขืง ืขืืขืืขื ืื ืคืึธืจืขื ืื MC:
- ื ืกืขืจืืข ืคืื โโืงืึธืืึทืคืืฉืึทื ืฅ C ืืขื ืขื ืืืงืึธืืืื ืคืื ืื ืืขืงืข ืืึทืื;
- ืืง <- ืืง | C;
- ืืขืจ ืคึผืึทืจืึทืืขืืขืจ ืง ืืื ืืืฉืืืกื ืืืืืจื ืืืืฃ ืื ืฉืจืขืงืืขื ืื ืึทืงืืืึทืืึทืื:
|M| * 8 / (count_full(MC) + count_ones(MC) * k_rate(k)) < k / ((1 << k) - 1); - ืืขื ืืืขื ืืืืึทืืขืจ
n = (1 << k) - 1ืงืืขื ืกืืขืจ ืืึทืืืึทืืืง ืืืื ืคืื ื ืื-ื ืื ืขืืขืืขื ืื ืคึฟืื ืืง ืืื ืืขืฉืจืืื ืฆืa:- ืื ืืึทืืืฉ ืืึทืฉ ืคึฟืื ืงืฆืืข ืืื ืืึทืืจืึทืื
f, ืจืขืคึผืจืืืขื ืืื ื ืึท n-ืืืกื ืืืึธืจืaืฆื ืง-ืืืกืs; - ืฆื
s == 0, ืืขืืึธืื ืขืก ืืื ื ืื ืืึทืจืคึฟื ืฆื ืืืืฉื ืขืคึผืขืก ืืื ืื ืึทืืืขืจืืืึทื ืืืืืขืื ืฆื ืื ืืืืึทืืขืจ ืงืึธืืึทืคืืฉืึทื ืฅ; - ืจืขืืืฆืืจื ืื ืึทืืกืึธืืื ืืืขืจื ืคืื ืื ืงืึธืืึทืคืืฉืึทื ื ืคืึทืจืึทื ืืืืึธืจืืืขื ืคึฟืึทืจ
sโ ืึทืจืฒึทื ืึทืจืฒึทื ืืึธืก ืฐืึธืจืa; - ืืืื ืืื ืึท ืจืขืืืืืึทื ืคืื ืื ืจืขืืืงืฆืืข ืึทืงืขืจื ืึท ืจืขืืืงืฆืืข (ืื ืงืึธืืึทืคืืฉืึทื ื ืืืขืจื 0), ืืขืืึธืื ืืืืขืจืืืจื ืืขื ืฉืจืื ืคืื ืื ืึธื ืืืื;
- ืื ืืึทืืืฉ ืืึทืฉ ืคึฟืื ืงืฆืืข ืืื ืืึทืืจืึทืื
- ืึทืืข ืงืึธืืึทืคืืฉืึทื ืฅ ืืขื ืขื ืงืึธืืขื ืืืจื RLE ืืื Huffman, ืืขืฉืจืืื ืฆื ืื ืืงืืจ ืืขืงืขืก;
- ืืขืจ ืคึผืึทืจืึทืืขืืขืจ ืง ืืื ืืขืฉืจืืื ืฆื ืืขืจ ืึทืจืงืืืื ืืขืงืข;
- ืึท MD5 ืืึทืฉ ืืื ืงืึทืืงืืึทืืืืืื ืคืื ืืขืืขืจ ืืขืงืข L ืืื ืืขืจ ืกืืจ ืคืื ืืืืขืจ ืึธืจืืืื ืขื ืึธืจื ืืื ืืขืฉืจืืื ืฆื ืืขืจ ืึทืจืงืืืื ืืขืงืข.
ืืืื ืืขืง
ืื ื ืึทืืื ืคืึธืจืขื ืคืื ืื ืึทืืืขืจืืืึทื ืืื ืืืคึผืืึทืืึทื ืฅ ืืื ืื ืืขืจืข ืืืื-ืืืจืื (ืกืคึผืขืฆืืขื ืืื ืืืกื ืืึทืืืื ื) ืฉืคึผืจืึทืื ืืืึธืื ืืขืื ืฉืจืขืงืืขื ืคืึธืจืฉืืขืืื ื, ืึทืืื ืืื ืืืคึผืืึทืืขื ืึทื ืึทืืข ืื ืงืึทืืคึผืืขืงืกืืืื ืืื ืจืืื C ืืื ืืืจืืืขืงืึธืื ืึท ื ืืืขืจ ืคืื ืึธืคึผืืืืืืึทืืืึธื ืก ืืื ืืขืจืืื ืขื ืคืื ืืืจืืคืืจืื ื ืืืืงืืึทื ืืื ืืึผืจืื (ืืืจ ืืึธื ืงืืื ืืขืืึทื ืง ืืื ืคืื ืื ืืืืืขืจ ืืืขืื ืึธื ืงืึทืืคึผืจืขืฉืึทื ืืคืืื ืืืืืขืจ DCT). ืืืขืจ ืืคืืื ืึทืืื, ืืื ืขืจืฉืืขืจ ืื ืืืืงืืึทื ืคืื ืืืจืืคืืจืื ื ืืื ืงืก ืคืื ืฆื ืืืื ืืขืืืืื, ืึทืืื ืืื ืืืขื ื ืืฉื ืืึทืฉืจืืึทืื ืื ืืื ืฆืข ืคึผืจืึธืฆืขืก ืืื ืืขืืืึธืืก ืืขื ืืฆื.
ืงืจืืึทื-ืคึผืืึทืืคืึธืจืืข ืืื ืึทืืฉืืืื ืืื ืึท ืงืึธืืืื ืึทืฆืืข ืคืื โโโโืืืืืืฉืคึผืขื, ืคึผืงืจืข ืืื ืืื ืืืืจ ืืืืืจืขืจืื, ืคึฟืึทืจ ืืืึธืก ืืืจ ืืึทื ืงืขื ืืื. ืืืจื ืคืขืืืงืืึทื, ืึทืืฅ ืืื ืงืึทืืคึผืืืื ืืืจื ื ืึธืจืืึทื make, ืึทืืื Windows ืืืืขืจื ืืืืื ืฆื ืื ืกืืึทืืืจื ืขืืืขืืข Cygwin ืคึฟืึทืจ ืืื, ืึธืืขืจ ืืึทื ืืืขื ืืื ืืืืกืืึทื ืกืืืืืึธ ืืื ืืืืืจืขืจืื ืืืืฃ ืืืืขืจ ืืืืื.
ืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืืื ืื ืืืฆื ืืื ืื ืคืึธืจืขื ืคืื ืึท ืงืึทื ืกืึธืื ื ืืฆื ืืื ืืืืืืึธืืขืง. ืืขื ืข ืืืึธืก ืืขื ืขื ืืื ืืขืจืขืกืืจื ืงืขื ืขื ืืขืคึฟืื ืขื ืืขืจ ืืืขืื ื ืืฆื ืื ืืขืฆืืข ืืื ืื ืืืืขื ืขื ืืื ืื ืจืืคึผืึทืืึทืืึธืจื ืืืืฃ Github, ืื ืืื ืง ืฆื ืืืึธืก ืืื ืืืขื ืฆืืืฉืขืคึผืขื ืืื ืื ืกืืฃ ืคืื ืืขื ืคึผืึธืกืื. ืืื ืืึธ ืืืจ ืืืื ืืืืฃ ืฆื ืึท ืืึทืฉืจืืึทืืื ื ืืื ืืขืืึทื ืกืืจืืืฉืึทื ืคืื ืื ืึทืจืืขื.
ืืื ืฆื ื ืืฆื?
ืงืขืจืคืึทืื. ืืขืืืืื ื ืืืืืขืจ ืงืขื ืขื ืืืื ืืจืืืขืจืืขืคืืจื, ืจืื ืืืื ืืื ืงืึทืคึผืื ืืื ืืขืืืืื. ืึธืืขืจ, ืืืจ ืืึธื ืืืื ืืึธืจ ืึธืคึผืืขืืื ืืื ื ืืฉื ืืืืฉื ืืืืขืจ ืืื ืืึทืื ืืื ืงืืื ืืืขื. ืืฉืึทื ืืื ื ืืืื ืืืกื ืืืขื ืฆืขืฉืืขืจื ืื ืืึทืฉ ืืื ืืึทืื ืขืก ืืืืืขืืืขื ืฆื ืฆืืจืืงืงืจืืื ืื ืืื ืคึฟืึธืจืืึทืฆืืข.
ืจืขืื ืึทื ื ืึธื ืืึทืืืื ื ืืืจ ืืึทืงืืืขื ืื ืขืงืกืขืงืืืึทืืืข ืืขืงืข f5ar. ืืืจ ืงืขื ืขื ืคืื ืึทื ืืขืจืงืืืึทืื ืื ืืจืืืก ืคืื ืืขืจ ืืืืืืึธืืขืง ืฆื ืจืขืืขื ืขื ืื ืคึผืึทืกืึทืืืืึทืืื ืคืื ืืืึทื ื ืืฆื ืืื ืื ืคืึธื -a: ./f5ar -a [ะฟะฐะฟะบะฐ ะฟะพะธัะบะฐ] [Perl-ัะพะฒะผะตััะธะผะพะต ัะตะณัะปััะฝะพะต ะฒััะฐะถะตะฝะธะต]. ืคึผืึทืงืงืึทืืื ื ืืื ืืืจืืืขืงืึธืื ืืืจื ืื ืืึทื ืฉืึทืคึฟื ./f5ar -p [ะฟะฐะฟะบะฐ ะฟะพะธัะบะฐ] [Perl-ัะพะฒะผะตััะธะผะพะต ัะตะณัะปััะฝะพะต ะฒััะฐะถะตะฝะธะต] [ัะฟะฐะบะพะฒัะฒะฐะตะผัะน ัะฐะนะป] [ะธะผั ะฐัั
ะธะฒะฐ], ืืื ืึทื ืคึผืึทืงืื ื ื ืืฆื ./f5ar -u [ัะฐะนะป ะฐัั
ะธะฒะฐ] [ะธะผั ะฒะพัััะฐะฝะพะฒะปะตะฝะฝะพะณะพ ัะฐะนะปะฐ].
ืืขืืึทื ืกืืจืืืฉืึทื ืคืื ืึทืจืืขื
ืฆื ืืืืึทืื ืื ืืคืขืงืืืืื ืึทืก ืคืื ืืขื ืืืคึฟื, ืืื ืืคึผืืึธืึทืืขื ืึท ืืึทืืืื ื ืคืื 225 ืืขืืึทืืจืข ืคืจืื ืคืึธืืึธืก ืคืื ืืื ื ืคึฟืื ืืขืจ ืืื ืกื . ืืขืืขืจ ืคืื ืืื ืืื ืึท ืืืกื ืืขืืขืจ ืงืืืึทืืืืขื ืืื ืืขืืืืื ืืืขื ืืึทื ืืฆืขืจ ืคืึธืืึธืก, ืึธืืขืจ ื ืึธื. ืืขืืขืจ ืคืื ืืื ืืื ืืขืืืขื ืฉืืึทืขื-ืขื ืงืึธืื ืืื libjpeg ืฆื ื ืืืจืึทืืืื ืื ืคึผืจืึทื ืคืื ืื ืืืืืืึธืืขืง ืงืึธืืืจืื ื ืคึฟืขืึดืงืืืื ืืืืฃ ืื ืงืืืืขืืืืง ืืจืืืก. ืฆื ืึธื ืืืืึทืื ืื ืขืจืืกื ืืืึทืฉืคึผืื ืคืื ืงืึทืืคึผืจืขืกืึทืืึทื ืืึทืื, ืึท ืจืึทื ืืึธื 36-ืืขืืขืจ (ืึท ืืืกื ืืขืจ ืืื 5% ืคืื ืื ืืึทื ืฅ ืืจืืืก) ืืื ืึทืคืึธืจืืื ืคืื ืื ืืขืจืืขืืืืื ืืขืงืข ืืื ืืืฉืขื ืขืจืืืืึทื ืืื ืื.
ืื ืืขืกืืื ื ืคึผืจืึธืฆืขืก ืืื ืืึทื ืฅ ืคึผืฉืื:
$ ls
binary_data dogs f5ar
$ du -sh dogs/
633M dogs/
$ du -h binary_data
36M binary_data
$ ./f5ar -p dogs/ .*jpg binary_data dogs.f5ar
Reading compressing file... ok
Initializing the archive... ok
Analysing library capacity... done in 16.8s
Detected somewhat guaranteed capacity of 48439359 bytes
Detected possible capacity of upto 102618787 bytes
Compressing... done in 32.6s
Saving the archive... ok
$ ./f5ar -u dogs/dogs.f5ar unpacked
Initializing the archive... ok
Reading the archive file... ok
Filling the archive with files... done in 1.2s
Decompressing... done in 17.5s
Writing extracted data... ok
$ sha1sum binary_data unpacked
ba7ade4bc77881ab463121e77bbd4d41ee181ae9 binary_data
ba7ade4bc77881ab463121e77bbd4d41ee181ae9 unpacked
$ du -sh dogs/
563M dogs/ืึธืืขืจ ืึท ืกืงืจืขืขื ืฉืึธื ืคึฟืึทืจ ืคืึทื ืก

ืืื ืืืจ ืงืขื ืขื ืืขื, ืคึฟืื ืืขืจ ืึธืจืืืื ืขื 633 + 36 == 669 ืืขืืืืืื ืคืื ืืึทืื ืืืืฃ ืื ืฉืืืขืจ ืคืึธืจ, ืืืจ ืขื ืืืงื ืืื ืืื ืึท ื ืืกืขืจ 563, ืืขืื ืืื ืื ืึท ืงืึทืืคึผืจืขืฉืึทื ืคืึทืจืืขืืืขื ืืฉ ืคืื ~ 1,188. ืืขืจ ืจืึทืืืงืึทื ืืืืืง ืืื ืืขืจืงืืขืจื ืืืจื ืืึธืจ ืงืืืื ืืึธืกืกืขืก, ืขื ืืขื ืฆื ืื ืืืงืืืขื ืืืขื ืึธืคึผืืืืืืื ื JPEG ืืขืงืขืก ืืื ืงืืึทืกืืฉ ืืขืืืึธืืก (ืึทืืึท ืืื ืงืืืื ืืฉืืง ืืืฉืคึผื). ืืขืืืืื ืืืขื, ืืืขื ื ืืฆื ืกืืขืืึทื ืึธืืจืึทืคืืง ืงืึทืืคึผืจืขืฉืึทื, ืืื ืคึฟืึธืจืืึทืฆืืข ืืื ื ืืฉื ืคืฉืื "ืคืึทืจืคืึทืื", ืึธืืขืจ ืืื ืืขื ืืฆื ืฆื ืขื ืงืึธืื ืื ืืขืจืข ืืึทืื ืืขืจืฆื, ืื ื ืืืขืจ ืคืื "ืึธืคึผืืืืืืขื" ืงืึธืืึทืคืืฉืึทื ืฅ ืจืขืื ืฆื ืืขืจ ื ืืฆื ืคืื F5 ืืื ืคืื ืืืืื ืืงืขืจ ืืื ืืื ืืจืืืืฆืืื ืขืื ืึทืคึผืืึทืืึทืืืืฉืึทื.
ืืืขืืืขืจ ืืึธืืืคืืงืึทืืืึธื ืก ืขืก ืืขื ืขื, ืืื ืืขื ืขื ืืขืืึทืืจืข ืืืืขืืง ืฆื ืื ืืืื. ืืื ืืขืจ ืื ืกืคึผืืืืขืจ ืืื ืื, ืื ืืืืขื ืขืจ ืงืขื ืขื ืึธืคึผืฉืึทืฆื ืื ืืืืืง ืืืืืข ืืืจื ืืืื ืืื ืืืจื ืกืึทืืืจืึทืงืืื ื ืื ืืืึทืืืขืก ืคืื ืื ืืขืืืื ืงืึธืืคึผืึธื ืขื ื ืคืื ืืขืจ ืึธืจืืืื ืขื (ืื ืืขืจ ืืืืืื ืื ืงืึธืืืจ, ืื ืงืืขื ืขืจืขืจ ืื ืืืืืง):
ืคึฟืึทืจืืื ืืื ืืขื ืฆื ืืืืืขืจ ืืืึธืก ืืึธื ื ืื ืคึผืึทืกืืง ืืืืฃ ืืึทืืจืึทืกืืึธืจืึทืืข
ืึธืจืืืื ืขื -
ืืขืขื ืืขืจื -
ืืืืืง -
ืึธื ืฉืืึธื ืึท ืืกืงื ื
ืืื ืืืฃ ืืื ืืื ืืขืงืขื ื ืืืืขืจืฆืืืื ืืขื ืืืืขื ืขืจ ืื ืืืขืืืข ืืขืืืื ืืขื ืขื ืืขืืืื ืืื ืืืื ื ืจืขืื ืืืืฃ ืืขืื. ืึธืืขืจ, ืืืืื ื ืึท ืฉืืืขืจ ืคืึธืจ ืึธืืขืจ ืึทื ื ืึธื ืงืึทื ืึทื (ืคึฟืึทืจ ื ืขืฅ ืืจืึทื ืกืืืกืืข) ืงืขื ืืืกืงืืืขื ืืื ืึท ืคืื ืกืืืคึผืืขืจ ืึธืคึผืฆืืข ืืื ืืจืืื ื ืฆื ืฉืคึผืึธืจื ืืขืื ืืืืฃ ืืขื ืืืขื. ืืืืฃ ืื ืืืื ืืึทื ื, ืืึธืก ืืื ืืืช ืืจืืื ืึทื ืืืืืงืืื ื ืืื ืึธืคื ืกืืืคึผืืขืจ ืืื ืืขืจ ืคืึทืจืืึธืืืขื. ืืืขืจ ืืืืฃ ืื ืื ืืขืจืข ืืึทื ื, ืืืจ ืืึธื ื ืืฉื ืคืึทืจืืขืกื ืืืขืื ืื ืืืฃ. ื ืึธื ืึทืืข, ืขืก ืืขื ืขื ืงืืื ืืึทืจืึทื ืืืจื ืึทื ืืึธืจืื ืืืจ ืืืขื ืงืขื ืขื ืฆื ืงืืืขื ืฆื ืื ืงืจืึธื ืืื ืงืืืคื ืืื ื ืึธื ืืืืื ื ืืขืจืึทืืืืข ืฉืืืขืจ ืคืึธืจ, ืึธืืขืจ ืืืจ ืงืขื ืขื ืฉืืขื ืืืง ื ืืฆื ืื ืืืึธืก ืืืจ ืืึธื ืฉืืื ืืืื ืขืจืืฉ ืืื ืฉืืื.
->
ืืงืืจ: www.habr.com
